@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.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,9 +70,9 @@ const toRawType = (value) => {
|
|
|
70
70
|
};
|
|
71
71
|
const isPlainObject = (val) => toTypeString(val) === "[object Object]";
|
|
72
72
|
const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
|
|
73
|
-
const isReservedProp =
|
|
74
|
-
const isBuiltInTag =
|
|
75
|
-
const isBuiltInDirective =
|
|
73
|
+
const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
|
|
74
|
+
const isBuiltInTag = /*#__PURE__*/ makeMap("slot,component");
|
|
75
|
+
const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
|
|
76
76
|
const cacheStringFunction = (fn) => {
|
|
77
77
|
const cache = Object.create(null);
|
|
78
78
|
return ((str) => {
|
|
@@ -184,7 +184,7 @@ const slotFlagsText = {
|
|
|
184
184
|
[2]: "DYNAMIC",
|
|
185
185
|
[3]: "FORWARDED"
|
|
186
186
|
};
|
|
187
|
-
const isGloballyAllowed =
|
|
187
|
+
const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
|
|
188
188
|
//#endregion
|
|
189
189
|
//#region packages/shared/src/codeframe.ts
|
|
190
190
|
const range = 2;
|
|
@@ -238,10 +238,10 @@ function normalizeStyle(value) {
|
|
|
238
238
|
}
|
|
239
239
|
const listDelimiterRE = /;(?![^(]*\))/g;
|
|
240
240
|
const propertyDelimiterRE = /:([^]+)/;
|
|
241
|
-
const styleCommentRE =
|
|
241
|
+
const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
|
|
242
242
|
function parseStringStyle(cssText) {
|
|
243
243
|
const ret = {};
|
|
244
|
-
cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
|
|
244
|
+
cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
|
|
245
245
|
if (item) {
|
|
246
246
|
const tmp = item.split(propertyDelimiterRE);
|
|
247
247
|
tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
|
|
@@ -291,22 +291,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
|
|
|
291
291
|
* Compiler only.
|
|
292
292
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
293
293
|
*/
|
|
294
|
-
const isHTMLTag =
|
|
294
|
+
const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
|
|
295
295
|
/**
|
|
296
296
|
* Compiler only.
|
|
297
297
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
298
298
|
*/
|
|
299
|
-
const isSVGTag =
|
|
299
|
+
const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
|
|
300
300
|
/**
|
|
301
301
|
* Compiler only.
|
|
302
302
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
303
303
|
*/
|
|
304
|
-
const isMathMLTag =
|
|
304
|
+
const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
|
|
305
305
|
/**
|
|
306
306
|
* Compiler only.
|
|
307
307
|
* Do NOT use in runtime code paths unless behind `__DEV__` flag.
|
|
308
308
|
*/
|
|
309
|
-
const isVoidTag =
|
|
309
|
+
const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
|
|
310
310
|
//#endregion
|
|
311
311
|
//#region packages/shared/src/domAttrConfig.ts
|
|
312
312
|
/**
|
|
@@ -321,11 +321,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
|
|
|
321
321
|
* - readonly -> readOnly
|
|
322
322
|
*/
|
|
323
323
|
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
324
|
-
const isSpecialBooleanAttr =
|
|
324
|
+
const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
|
|
325
325
|
/**
|
|
326
326
|
* The full list is needed during SSR to produce the correct initial markup.
|
|
327
327
|
*/
|
|
328
|
-
const isBooleanAttr =
|
|
328
|
+
const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
|
|
329
329
|
/**
|
|
330
330
|
* Boolean attributes should be included if the value is truthy or ''.
|
|
331
331
|
* e.g. `<select multiple>` compiles to `{ multiple: '' }`
|
|
@@ -339,15 +339,15 @@ function includeBooleanAttr(value) {
|
|
|
339
339
|
* Don't also forget to allow `data-*` and `aria-*`!
|
|
340
340
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
|
|
341
341
|
*/
|
|
342
|
-
const isKnownHtmlAttr =
|
|
342
|
+
const isKnownHtmlAttr = /*@__PURE__*/ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
|
|
343
343
|
/**
|
|
344
344
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
|
|
345
345
|
*/
|
|
346
|
-
const isKnownSvgAttr =
|
|
346
|
+
const isKnownSvgAttr = /*@__PURE__*/ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
|
|
347
347
|
/**
|
|
348
348
|
* Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
|
|
349
349
|
*/
|
|
350
|
-
const isKnownMathMLAttr =
|
|
350
|
+
const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
|
|
351
351
|
/**
|
|
352
352
|
* Shared between server-renderer and runtime-core hydration logic
|
|
353
353
|
*/
|
|
@@ -407,13 +407,54 @@ function getEscapedCssVarName(key, doubleEscape) {
|
|
|
407
407
|
}
|
|
408
408
|
//#endregion
|
|
409
409
|
//#region packages/shared/src/looseEqual.ts
|
|
410
|
-
function looseCompareArrays(a, b) {
|
|
410
|
+
function looseCompareArrays(a, b, seen) {
|
|
411
411
|
if (a.length !== b.length) return false;
|
|
412
412
|
let equal = true;
|
|
413
|
-
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
|
|
413
|
+
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
|
|
414
414
|
return equal;
|
|
415
415
|
}
|
|
416
|
-
function
|
|
416
|
+
function looseCompareCollections(a, b, seen) {
|
|
417
|
+
if (a.size !== b.size) return false;
|
|
418
|
+
const candidates = Array.from(b);
|
|
419
|
+
const matched = new Uint8Array(candidates.length);
|
|
420
|
+
for (const item of a) {
|
|
421
|
+
let index = -1;
|
|
422
|
+
for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
|
|
423
|
+
index = i;
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
426
|
+
if (index < 0) return false;
|
|
427
|
+
matched[index] = 1;
|
|
428
|
+
}
|
|
429
|
+
return true;
|
|
430
|
+
}
|
|
431
|
+
function looseCompareObjects(a, b, seen) {
|
|
432
|
+
let aValidType = isMap(a);
|
|
433
|
+
let bValidType = isMap(b);
|
|
434
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
435
|
+
aValidType = isSet(a);
|
|
436
|
+
bValidType = isSet(b);
|
|
437
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
|
|
438
|
+
if (Object.keys(a).length !== Object.keys(b).length) return false;
|
|
439
|
+
for (const key in a) {
|
|
440
|
+
const aHasKey = a.hasOwnProperty(key);
|
|
441
|
+
const bHasKey = b.hasOwnProperty(key);
|
|
442
|
+
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
|
|
443
|
+
}
|
|
444
|
+
return String(a) === String(b);
|
|
445
|
+
}
|
|
446
|
+
function looseCompareNested(a, b, seen, compare) {
|
|
447
|
+
if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
|
|
448
|
+
const [seenA, seenB] = seen;
|
|
449
|
+
if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
|
|
450
|
+
seenA.set(a, b);
|
|
451
|
+
seenB.set(b, a);
|
|
452
|
+
const equal = compare(a, b, seen);
|
|
453
|
+
seenA.delete(a);
|
|
454
|
+
seenB.delete(b);
|
|
455
|
+
return equal;
|
|
456
|
+
}
|
|
457
|
+
function looseEqual(a, b, seen) {
|
|
417
458
|
if (a === b) return true;
|
|
418
459
|
let aValidType = isDate(a);
|
|
419
460
|
let bValidType = isDate(b);
|
|
@@ -423,17 +464,12 @@ function looseEqual(a, b) {
|
|
|
423
464
|
if (aValidType || bValidType) return a === b;
|
|
424
465
|
aValidType = isArray(a);
|
|
425
466
|
bValidType = isArray(b);
|
|
426
|
-
if (aValidType || bValidType) return aValidType && bValidType ?
|
|
467
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
|
|
427
468
|
aValidType = isObject(a);
|
|
428
469
|
bValidType = isObject(b);
|
|
429
470
|
if (aValidType || bValidType) {
|
|
430
471
|
if (!aValidType || !bValidType) return false;
|
|
431
|
-
|
|
432
|
-
for (const key in a) {
|
|
433
|
-
const aHasKey = a.hasOwnProperty(key);
|
|
434
|
-
const bHasKey = b.hasOwnProperty(key);
|
|
435
|
-
if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
|
|
436
|
-
}
|
|
472
|
+
return looseCompareNested(a, b, seen, looseCompareObjects);
|
|
437
473
|
}
|
|
438
474
|
return String(a) === String(b);
|
|
439
475
|
}
|
|
@@ -563,6 +599,8 @@ function setupFlagsHandler(target) {
|
|
|
563
599
|
function warn$2(msg, ...args) {
|
|
564
600
|
console.warn(`[Vue warn] ${msg}`, ...args);
|
|
565
601
|
}
|
|
602
|
+
//#endregion
|
|
603
|
+
//#region packages/reactivity/src/system.ts
|
|
566
604
|
const notifyBuffer = [];
|
|
567
605
|
let batchDepth = 0;
|
|
568
606
|
let activeSub = void 0;
|
|
@@ -701,13 +739,23 @@ function endTracking(sub, prevSub) {
|
|
|
701
739
|
sub.flags &= -5;
|
|
702
740
|
}
|
|
703
741
|
function flush() {
|
|
742
|
+
let hasError = false;
|
|
743
|
+
let error;
|
|
704
744
|
while (notifyIndex < notifyBufferLength) {
|
|
705
745
|
const effect = notifyBuffer[notifyIndex];
|
|
706
746
|
notifyBuffer[notifyIndex++] = void 0;
|
|
707
|
-
|
|
747
|
+
try {
|
|
748
|
+
effect.notify();
|
|
749
|
+
} catch (err) {
|
|
750
|
+
if (!hasError) {
|
|
751
|
+
hasError = true;
|
|
752
|
+
error = err;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
708
755
|
}
|
|
709
756
|
notifyIndex = 0;
|
|
710
757
|
notifyBufferLength = 0;
|
|
758
|
+
if (hasError) throw error;
|
|
711
759
|
}
|
|
712
760
|
function checkDirty(link, sub) {
|
|
713
761
|
let stack;
|
|
@@ -791,7 +839,7 @@ var Dep = class {
|
|
|
791
839
|
}
|
|
792
840
|
set subs(value) {
|
|
793
841
|
this._subs = value;
|
|
794
|
-
if (value === void 0) this.map.delete(this.key);
|
|
842
|
+
if (value === void 0 && this.map) this.map.delete(this.key);
|
|
795
843
|
}
|
|
796
844
|
};
|
|
797
845
|
const targetMap = /* @__PURE__ */ new WeakMap();
|
|
@@ -874,9 +922,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
874
922
|
if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
|
|
875
923
|
}
|
|
876
924
|
break;
|
|
877
|
-
case "set":
|
|
878
|
-
if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
879
|
-
break;
|
|
925
|
+
case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
880
926
|
}
|
|
881
927
|
}
|
|
882
928
|
}
|
|
@@ -891,13 +937,17 @@ function getDepFromReactive(object, key) {
|
|
|
891
937
|
/**
|
|
892
938
|
* Track array iteration and return:
|
|
893
939
|
* - if input is reactive: a cloned raw array with reactive values
|
|
894
|
-
* - if input is
|
|
940
|
+
* - if input is readonly: a cloned raw array with readonly values, preserving
|
|
941
|
+
* reactivity
|
|
942
|
+
* - if input is raw or shallow: the original raw array
|
|
895
943
|
*/
|
|
896
944
|
function reactiveReadArray(array) {
|
|
897
945
|
const raw = /* @__PURE__ */ toRaw(array);
|
|
898
946
|
if (raw === array) return raw;
|
|
899
947
|
track(raw, "iterate", ARRAY_ITERATE_KEY);
|
|
900
|
-
|
|
948
|
+
if (/* @__PURE__ */ isShallow(array)) return raw;
|
|
949
|
+
if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
|
|
950
|
+
return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
|
|
901
951
|
}
|
|
902
952
|
/**
|
|
903
953
|
* Track array iteration and return raw array
|
|
@@ -1073,8 +1123,8 @@ function noTracking(self, method, args = []) {
|
|
|
1073
1123
|
}
|
|
1074
1124
|
//#endregion
|
|
1075
1125
|
//#region packages/reactivity/src/baseHandlers.ts
|
|
1076
|
-
const isNonTrackableKeys =
|
|
1077
|
-
const builtInSymbols = new Set(
|
|
1126
|
+
const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
|
|
1127
|
+
const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
|
|
1078
1128
|
function hasOwnProperty(key) {
|
|
1079
1129
|
if (!isSymbol(key)) key = String(key);
|
|
1080
1130
|
const obj = /* @__PURE__ */ toRaw(this);
|
|
@@ -1129,12 +1179,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1129
1179
|
oldValue = /* @__PURE__ */ toRaw(oldValue);
|
|
1130
1180
|
value = /* @__PURE__ */ toRaw(value);
|
|
1131
1181
|
}
|
|
1132
|
-
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value))
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1182
|
+
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
|
|
1183
|
+
if (isOldValueReadonly) {
|
|
1184
|
+
warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
|
|
1185
|
+
return true;
|
|
1186
|
+
} else {
|
|
1187
|
+
oldValue.value = value;
|
|
1188
|
+
return true;
|
|
1189
|
+
}
|
|
1138
1190
|
}
|
|
1139
1191
|
}
|
|
1140
1192
|
const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
|
|
@@ -1175,10 +1227,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1175
1227
|
return true;
|
|
1176
1228
|
}
|
|
1177
1229
|
};
|
|
1178
|
-
const mutableHandlers =
|
|
1179
|
-
const readonlyHandlers =
|
|
1180
|
-
const shallowReactiveHandlers =
|
|
1181
|
-
const shallowReadonlyHandlers =
|
|
1230
|
+
const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
|
|
1231
|
+
const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
|
|
1232
|
+
const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
|
|
1233
|
+
const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
|
|
1182
1234
|
//#endregion
|
|
1183
1235
|
//#region packages/reactivity/src/collectionHandlers.ts
|
|
1184
1236
|
const toShallow = (value) => value;
|
|
@@ -1329,10 +1381,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
|
|
|
1329
1381
|
return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
|
|
1330
1382
|
};
|
|
1331
1383
|
}
|
|
1332
|
-
const mutableCollectionHandlers = { get:
|
|
1333
|
-
const shallowCollectionHandlers = { get:
|
|
1334
|
-
const readonlyCollectionHandlers = { get:
|
|
1335
|
-
const shallowReadonlyCollectionHandlers = { get:
|
|
1384
|
+
const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
|
|
1385
|
+
const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
|
|
1386
|
+
const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
|
|
1387
|
+
const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
|
|
1336
1388
|
function checkIdentityKeys(target, has, key) {
|
|
1337
1389
|
const rawKey = /* @__PURE__ */ toRaw(key);
|
|
1338
1390
|
if (rawKey !== key && has.call(target, rawKey)) {
|
|
@@ -1357,7 +1409,7 @@ function targetTypeMap(rawType) {
|
|
|
1357
1409
|
default: return 0;
|
|
1358
1410
|
}
|
|
1359
1411
|
}
|
|
1360
|
-
|
|
1412
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1361
1413
|
function reactive(target) {
|
|
1362
1414
|
if (/* @__PURE__ */ isReadonly(target)) return target;
|
|
1363
1415
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1392,7 +1444,7 @@ function reactive(target) {
|
|
|
1392
1444
|
* @param target - The source object.
|
|
1393
1445
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
|
|
1394
1446
|
*/
|
|
1395
|
-
|
|
1447
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1396
1448
|
function shallowReactive(target) {
|
|
1397
1449
|
return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
|
|
1398
1450
|
}
|
|
@@ -1425,7 +1477,7 @@ function shallowReactive(target) {
|
|
|
1425
1477
|
* @param target - The source object.
|
|
1426
1478
|
* @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
|
|
1427
1479
|
*/
|
|
1428
|
-
|
|
1480
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1429
1481
|
function readonly(target) {
|
|
1430
1482
|
return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
|
|
1431
1483
|
}
|
|
@@ -1459,7 +1511,7 @@ function readonly(target) {
|
|
|
1459
1511
|
* @param target - The source object.
|
|
1460
1512
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
|
|
1461
1513
|
*/
|
|
1462
|
-
|
|
1514
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1463
1515
|
function shallowReadonly(target) {
|
|
1464
1516
|
return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
|
|
1465
1517
|
}
|
|
@@ -1496,7 +1548,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
|
|
|
1496
1548
|
* @param value - The value to check.
|
|
1497
1549
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
|
|
1498
1550
|
*/
|
|
1499
|
-
|
|
1551
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1500
1552
|
function isReactive(value) {
|
|
1501
1553
|
if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
|
|
1502
1554
|
return !!(value && value["__v_isReactive"]);
|
|
@@ -1512,11 +1564,11 @@ function isReactive(value) {
|
|
|
1512
1564
|
* @param value - The value to check.
|
|
1513
1565
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
|
|
1514
1566
|
*/
|
|
1515
|
-
|
|
1567
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1516
1568
|
function isReadonly(value) {
|
|
1517
1569
|
return !!(value && value["__v_isReadonly"]);
|
|
1518
1570
|
}
|
|
1519
|
-
|
|
1571
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1520
1572
|
function isShallow(value) {
|
|
1521
1573
|
return !!(value && value["__v_isShallow"]);
|
|
1522
1574
|
}
|
|
@@ -1527,7 +1579,7 @@ function isShallow(value) {
|
|
|
1527
1579
|
* @param value - The value to check.
|
|
1528
1580
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
|
1529
1581
|
*/
|
|
1530
|
-
|
|
1582
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1531
1583
|
function isProxy(value) {
|
|
1532
1584
|
return value ? !!value["__v_raw"] : false;
|
|
1533
1585
|
}
|
|
@@ -1554,7 +1606,7 @@ function isProxy(value) {
|
|
|
1554
1606
|
* @param observed - The object for which the "raw" value is requested.
|
|
1555
1607
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
|
|
1556
1608
|
*/
|
|
1557
|
-
|
|
1609
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1558
1610
|
function toRaw(observed) {
|
|
1559
1611
|
const raw = observed && observed["__v_raw"];
|
|
1560
1612
|
return raw ? /* @__PURE__ */ toRaw(raw) : observed;
|
|
@@ -1603,15 +1655,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
|
|
|
1603
1655
|
const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
|
|
1604
1656
|
//#endregion
|
|
1605
1657
|
//#region packages/reactivity/src/ref.ts
|
|
1606
|
-
|
|
1658
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1607
1659
|
function isRef(r) {
|
|
1608
1660
|
return r ? r["__v_isRef"] === true : false;
|
|
1609
1661
|
}
|
|
1610
|
-
|
|
1662
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1611
1663
|
function ref(value) {
|
|
1612
1664
|
return createRef(value, toReactive);
|
|
1613
1665
|
}
|
|
1614
|
-
|
|
1666
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1615
1667
|
function shallowRef(value) {
|
|
1616
1668
|
return createRef(value);
|
|
1617
1669
|
}
|
|
@@ -1814,7 +1866,7 @@ function customRef(factory) {
|
|
|
1814
1866
|
* @param object - Reactive object to be made into an object of linked refs.
|
|
1815
1867
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
|
|
1816
1868
|
*/
|
|
1817
|
-
|
|
1869
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1818
1870
|
function toRefs(object) {
|
|
1819
1871
|
const ret = isArray(object) ? new Array(object.length) : {};
|
|
1820
1872
|
for (const key in object) ret[key] = propertyToRef(object, key);
|
|
@@ -1865,7 +1917,7 @@ var GetterRefImpl = class {
|
|
|
1865
1917
|
return this._value = this._getter();
|
|
1866
1918
|
}
|
|
1867
1919
|
};
|
|
1868
|
-
|
|
1920
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1869
1921
|
function toRef(source, key, defaultValue) {
|
|
1870
1922
|
if (/* @__PURE__ */ isRef(source)) return source;
|
|
1871
1923
|
else if (isFunction(source)) return new GetterRefImpl(source);
|
|
@@ -1931,10 +1983,12 @@ var ReactiveEffect = class {
|
|
|
1931
1983
|
get dirty() {
|
|
1932
1984
|
const flags = this.flags;
|
|
1933
1985
|
if (flags & 16) return true;
|
|
1934
|
-
if (flags & 32)
|
|
1935
|
-
this.
|
|
1936
|
-
|
|
1937
|
-
|
|
1986
|
+
if (flags & 32) {
|
|
1987
|
+
if (checkDirty(this.deps, this)) {
|
|
1988
|
+
this.flags = flags | 16;
|
|
1989
|
+
return true;
|
|
1990
|
+
} else this.flags = flags & -33;
|
|
1991
|
+
}
|
|
1938
1992
|
return false;
|
|
1939
1993
|
}
|
|
1940
1994
|
};
|
|
@@ -2113,10 +2167,12 @@ var ComputedRefImpl = class {
|
|
|
2113
2167
|
get _dirty() {
|
|
2114
2168
|
const flags = this.flags;
|
|
2115
2169
|
if (flags & 16) return true;
|
|
2116
|
-
if (flags & 32)
|
|
2117
|
-
this.
|
|
2118
|
-
|
|
2119
|
-
|
|
2170
|
+
if (flags & 32) {
|
|
2171
|
+
if (checkDirty(this.deps, this)) {
|
|
2172
|
+
this.flags = flags | 16;
|
|
2173
|
+
return true;
|
|
2174
|
+
} else this.flags = flags & -33;
|
|
2175
|
+
}
|
|
2120
2176
|
return false;
|
|
2121
2177
|
}
|
|
2122
2178
|
/**
|
|
@@ -2177,7 +2233,7 @@ var ComputedRefImpl = class {
|
|
|
2177
2233
|
}
|
|
2178
2234
|
};
|
|
2179
2235
|
setupOnTrigger(ComputedRefImpl);
|
|
2180
|
-
|
|
2236
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
2181
2237
|
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
2182
2238
|
let getter;
|
|
2183
2239
|
let setter;
|
|
@@ -2255,25 +2311,26 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2255
2311
|
else if (isFunction(s)) return call ? call(s, 2) : s();
|
|
2256
2312
|
else warnInvalidSource(s, onWarn);
|
|
2257
2313
|
});
|
|
2258
|
-
} else if (isFunction(source))
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2314
|
+
} else if (isFunction(source)) {
|
|
2315
|
+
if (cb) getter = call ? () => call(source, 2) : source;
|
|
2316
|
+
else getter = () => {
|
|
2317
|
+
if (this.cleanupsLength) {
|
|
2318
|
+
const prevSub = setActiveSub();
|
|
2319
|
+
try {
|
|
2320
|
+
cleanup(this);
|
|
2321
|
+
} finally {
|
|
2322
|
+
setActiveSub(prevSub);
|
|
2323
|
+
}
|
|
2324
|
+
}
|
|
2325
|
+
const currentEffect = activeWatcher;
|
|
2326
|
+
activeWatcher = this;
|
|
2262
2327
|
try {
|
|
2263
|
-
|
|
2328
|
+
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2264
2329
|
} finally {
|
|
2265
|
-
|
|
2330
|
+
activeWatcher = currentEffect;
|
|
2266
2331
|
}
|
|
2267
|
-
}
|
|
2268
|
-
|
|
2269
|
-
activeWatcher = this;
|
|
2270
|
-
try {
|
|
2271
|
-
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2272
|
-
} finally {
|
|
2273
|
-
activeWatcher = currentEffect;
|
|
2274
|
-
}
|
|
2275
|
-
};
|
|
2276
|
-
else {
|
|
2332
|
+
};
|
|
2333
|
+
} else {
|
|
2277
2334
|
getter = NOOP;
|
|
2278
2335
|
warnInvalidSource(source, onWarn);
|
|
2279
2336
|
}
|
|
@@ -2597,7 +2654,7 @@ let currentFlushPromise = null;
|
|
|
2597
2654
|
let jobsLength = 0;
|
|
2598
2655
|
let flushIndex = 0;
|
|
2599
2656
|
let postFlushIndex = 0;
|
|
2600
|
-
const resolvedPromise =
|
|
2657
|
+
const resolvedPromise = /*@__PURE__*/ Promise.resolve();
|
|
2601
2658
|
const RECURSION_LIMIT = 100;
|
|
2602
2659
|
function nextTick(fn) {
|
|
2603
2660
|
const p = currentFlushPromise || resolvedPromise;
|
|
@@ -2636,6 +2693,7 @@ const doFlushJobs = () => {
|
|
|
2636
2693
|
flushJobs();
|
|
2637
2694
|
} catch (e) {
|
|
2638
2695
|
currentFlushPromise = null;
|
|
2696
|
+
if (jobsLength || postJobs.length) queueFlush();
|
|
2639
2697
|
throw e;
|
|
2640
2698
|
}
|
|
2641
2699
|
};
|
|
@@ -2643,9 +2701,10 @@ function queueFlush() {
|
|
|
2643
2701
|
if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
|
|
2644
2702
|
}
|
|
2645
2703
|
function queuePostFlushCb(jobs, id = Infinity) {
|
|
2646
|
-
if (!isArray(jobs))
|
|
2647
|
-
|
|
2648
|
-
|
|
2704
|
+
if (!isArray(jobs)) {
|
|
2705
|
+
if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
|
|
2706
|
+
else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
|
|
2707
|
+
} else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
|
|
2649
2708
|
queueFlush();
|
|
2650
2709
|
}
|
|
2651
2710
|
function flushPreFlushCbs(instance, seen) {
|
|
@@ -2659,32 +2718,39 @@ function flushPreFlushCbs(instance, seen) {
|
|
|
2659
2718
|
i--;
|
|
2660
2719
|
jobsLength--;
|
|
2661
2720
|
if (cb.flags & 2) cb.flags &= -2;
|
|
2662
|
-
|
|
2663
|
-
|
|
2721
|
+
try {
|
|
2722
|
+
cb();
|
|
2723
|
+
} finally {
|
|
2724
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2725
|
+
}
|
|
2664
2726
|
}
|
|
2665
2727
|
}
|
|
2666
2728
|
function flushPostFlushCbs(seen) {
|
|
2667
2729
|
if (postJobs.length) {
|
|
2668
2730
|
if (activePostJobs) {
|
|
2669
|
-
activePostJobs.push(
|
|
2731
|
+
for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
|
|
2670
2732
|
postJobs.length = 0;
|
|
2671
2733
|
return;
|
|
2672
2734
|
}
|
|
2673
2735
|
activePostJobs = postJobs;
|
|
2674
2736
|
postJobs = [];
|
|
2675
2737
|
seen = seen || /* @__PURE__ */ new Map();
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
cb
|
|
2682
|
-
|
|
2683
|
-
|
|
2738
|
+
try {
|
|
2739
|
+
while (postFlushIndex < activePostJobs.length) {
|
|
2740
|
+
const cb = activePostJobs[postFlushIndex++];
|
|
2741
|
+
if (checkRecursiveUpdates(seen, cb)) continue;
|
|
2742
|
+
if (cb.flags & 2) cb.flags &= -2;
|
|
2743
|
+
if (!(cb.flags & 4)) try {
|
|
2744
|
+
cb();
|
|
2745
|
+
} finally {
|
|
2746
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2747
|
+
}
|
|
2684
2748
|
}
|
|
2749
|
+
} finally {
|
|
2750
|
+
while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
|
|
2751
|
+
activePostJobs = null;
|
|
2752
|
+
postFlushIndex = 0;
|
|
2685
2753
|
}
|
|
2686
|
-
activePostJobs = null;
|
|
2687
|
-
postFlushIndex = 0;
|
|
2688
2754
|
}
|
|
2689
2755
|
}
|
|
2690
2756
|
let isFlushing = false;
|
|
@@ -2694,9 +2760,12 @@ let isFlushing = false;
|
|
|
2694
2760
|
function flushOnAppMount(instance) {
|
|
2695
2761
|
if (!isFlushing) {
|
|
2696
2762
|
isFlushing = true;
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2763
|
+
try {
|
|
2764
|
+
flushPreFlushCbs(instance);
|
|
2765
|
+
flushPostFlushCbs();
|
|
2766
|
+
} finally {
|
|
2767
|
+
isFlushing = false;
|
|
2768
|
+
}
|
|
2700
2769
|
}
|
|
2701
2770
|
}
|
|
2702
2771
|
function flushJobs(seen) {
|
|
@@ -2726,8 +2795,8 @@ function flushJobs(seen) {
|
|
|
2726
2795
|
jobsLength = 0;
|
|
2727
2796
|
jobs.length = 0;
|
|
2728
2797
|
flushPostFlushCbs(seen);
|
|
2729
|
-
currentFlushPromise = null;
|
|
2730
2798
|
if (jobsLength || postJobs.length) flushJobs(seen);
|
|
2799
|
+
else currentFlushPromise = null;
|
|
2731
2800
|
}
|
|
2732
2801
|
}
|
|
2733
2802
|
function checkRecursiveUpdates(seen, fn) {
|
|
@@ -2758,6 +2827,19 @@ getGlobalThis().__VUE_HMR_RUNTIME__ = {
|
|
|
2758
2827
|
rerender: tryWrap(rerender),
|
|
2759
2828
|
reload: tryWrap(reload)
|
|
2760
2829
|
};
|
|
2830
|
+
function runWithHmrUpdating(fn) {
|
|
2831
|
+
isHmrUpdating = true;
|
|
2832
|
+
let done = false;
|
|
2833
|
+
try {
|
|
2834
|
+
fn();
|
|
2835
|
+
done = true;
|
|
2836
|
+
} finally {
|
|
2837
|
+
if (done) nextTick(() => {
|
|
2838
|
+
isHmrUpdating = false;
|
|
2839
|
+
});
|
|
2840
|
+
else isHmrUpdating = false;
|
|
2841
|
+
}
|
|
2842
|
+
}
|
|
2761
2843
|
const map = /* @__PURE__ */ new Map();
|
|
2762
2844
|
function registerHMR(instance) {
|
|
2763
2845
|
const id = instance.type.__hmrId;
|
|
@@ -2799,18 +2881,16 @@ function rerender(id, newRender) {
|
|
|
2799
2881
|
instance.render = newRender;
|
|
2800
2882
|
normalizeClassComponent(instance.type).render = newRender;
|
|
2801
2883
|
}
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2884
|
+
runWithHmrUpdating(() => {
|
|
2885
|
+
if (instance.vapor) {
|
|
2886
|
+
if (!instance.isUnmounted) instance.hmrRerender();
|
|
2887
|
+
} else {
|
|
2888
|
+
const i = instance;
|
|
2889
|
+
if (!(i.effect.flags & 1024)) {
|
|
2890
|
+
i.renderCache = [];
|
|
2891
|
+
i.effect.run();
|
|
2892
|
+
}
|
|
2810
2893
|
}
|
|
2811
|
-
}
|
|
2812
|
-
nextTick(() => {
|
|
2813
|
-
isHmrUpdating = false;
|
|
2814
2894
|
});
|
|
2815
2895
|
});
|
|
2816
2896
|
}
|
|
@@ -2825,17 +2905,19 @@ function reload(id, newComp) {
|
|
|
2825
2905
|
for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
|
|
2826
2906
|
const dirtyInstances = new Set(instances);
|
|
2827
2907
|
const rerenderedParents = /* @__PURE__ */ new Set();
|
|
2828
|
-
|
|
2829
|
-
const
|
|
2830
|
-
|
|
2831
|
-
if (
|
|
2832
|
-
rerenderedParents.
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2908
|
+
runWithHmrUpdating(() => {
|
|
2909
|
+
for (const instance of instances) {
|
|
2910
|
+
const parent = instance.parent;
|
|
2911
|
+
if (parent) {
|
|
2912
|
+
if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
|
|
2913
|
+
rerenderedParents.add(parent);
|
|
2914
|
+
parent.hmrRerender();
|
|
2915
|
+
}
|
|
2916
|
+
} else instance.hmrReload(newComp);
|
|
2917
|
+
}
|
|
2918
|
+
});
|
|
2837
2919
|
} else {
|
|
2838
|
-
const
|
|
2920
|
+
const parents = /* @__PURE__ */ new Set();
|
|
2839
2921
|
const dirtyInstanceSet = new Set(instances);
|
|
2840
2922
|
for (const instance of instances) {
|
|
2841
2923
|
const oldComp = normalizeClassComponent(instance.type);
|
|
@@ -2854,33 +2936,23 @@ function reload(id, newComp) {
|
|
|
2854
2936
|
instance.ceReload(newComp.styles);
|
|
2855
2937
|
dirtyInstances.delete(instance);
|
|
2856
2938
|
} else if (instance.parent) {
|
|
2857
|
-
|
|
2858
|
-
if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
|
|
2859
|
-
let updates = parentUpdates.get(parent);
|
|
2860
|
-
if (!updates) parentUpdates.set(parent, updates = []);
|
|
2861
|
-
updates.push([instance, dirtyInstances]);
|
|
2862
|
-
}
|
|
2939
|
+
if (!hasDirtyAncestor(instance, dirtyInstanceSet)) parents.add(instance.parent);
|
|
2863
2940
|
} else if (instance.appContext.reload) instance.appContext.reload();
|
|
2864
2941
|
else if (typeof window !== "undefined") window.location.reload();
|
|
2865
2942
|
else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
|
|
2866
2943
|
if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
|
|
2867
2944
|
}
|
|
2868
|
-
|
|
2945
|
+
parents.forEach((parent) => {
|
|
2869
2946
|
queueJob(() => {
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2947
|
+
runWithHmrUpdating(() => {
|
|
2948
|
+
if (parent.vapor) parent.hmrRerender();
|
|
2949
|
+
else {
|
|
2950
|
+
const i = parent;
|
|
2951
|
+
if (!(i.effect.flags & 1024)) {
|
|
2952
|
+
i.renderCache = [];
|
|
2953
|
+
i.effect.run();
|
|
2954
|
+
}
|
|
2877
2955
|
}
|
|
2878
|
-
}
|
|
2879
|
-
nextTick(() => {
|
|
2880
|
-
isHmrUpdating = false;
|
|
2881
|
-
});
|
|
2882
|
-
updates.forEach(([instance, dirtyInstances]) => {
|
|
2883
|
-
dirtyInstances.delete(instance);
|
|
2884
2956
|
});
|
|
2885
2957
|
});
|
|
2886
2958
|
});
|
|
@@ -2950,20 +3022,20 @@ function devtoolsInitApp(app, version) {
|
|
|
2950
3022
|
function devtoolsUnmountApp(app) {
|
|
2951
3023
|
emit$2("app:unmount", app);
|
|
2952
3024
|
}
|
|
2953
|
-
const devtoolsComponentAdded =
|
|
2954
|
-
const devtoolsComponentUpdated =
|
|
2955
|
-
const _devtoolsComponentRemoved =
|
|
3025
|
+
const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
|
|
3026
|
+
const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
|
|
3027
|
+
const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
|
|
2956
3028
|
const devtoolsComponentRemoved = (component) => {
|
|
2957
3029
|
if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
|
|
2958
3030
|
};
|
|
2959
|
-
|
|
3031
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
2960
3032
|
function createDevtoolsComponentHook(hook) {
|
|
2961
3033
|
return (component) => {
|
|
2962
3034
|
emit$2(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
|
|
2963
3035
|
};
|
|
2964
3036
|
}
|
|
2965
|
-
const devtoolsPerfStart =
|
|
2966
|
-
const devtoolsPerfEnd =
|
|
3037
|
+
const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
|
|
3038
|
+
const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
|
|
2967
3039
|
function createDevtoolsPerformanceHook(hook) {
|
|
2968
3040
|
return (component, type, time) => {
|
|
2969
3041
|
emit$2(hook, component.appContext.app, component.uid, component, type, time);
|
|
@@ -3192,7 +3264,7 @@ function configureCompat(config) {
|
|
|
3192
3264
|
validateCompatConfig(config);
|
|
3193
3265
|
extend(globalCompatConfig, config);
|
|
3194
3266
|
}
|
|
3195
|
-
const seenConfigObjects =
|
|
3267
|
+
const seenConfigObjects = /*@__PURE__*/ new WeakSet();
|
|
3196
3268
|
const warnedInvalidKeys = {};
|
|
3197
3269
|
function validateCompatConfig(config, instance) {
|
|
3198
3270
|
if (seenConfigObjects.has(config)) return;
|
|
@@ -3244,7 +3316,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
|
|
|
3244
3316
|
}
|
|
3245
3317
|
//#endregion
|
|
3246
3318
|
//#region packages/runtime-core/src/compat/instanceEventEmitter.ts
|
|
3247
|
-
const eventRegistryMap =
|
|
3319
|
+
const eventRegistryMap = /*@__PURE__*/ new WeakMap();
|
|
3248
3320
|
function getRegistry(instance) {
|
|
3249
3321
|
let events = eventRegistryMap.get(instance);
|
|
3250
3322
|
if (!events) eventRegistryMap.set(instance, events = Object.create(null));
|
|
@@ -3378,19 +3450,21 @@ const legacyDirectiveHookMap = {
|
|
|
3378
3450
|
};
|
|
3379
3451
|
function mapCompatDirectiveHook(name, dir, instance) {
|
|
3380
3452
|
const mappedName = legacyDirectiveHookMap[name];
|
|
3381
|
-
if (mappedName)
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3453
|
+
if (mappedName) {
|
|
3454
|
+
if (isArray(mappedName)) {
|
|
3455
|
+
const hook = [];
|
|
3456
|
+
mappedName.forEach((mapped) => {
|
|
3457
|
+
const mappedHook = dir[mapped];
|
|
3458
|
+
if (mappedHook) {
|
|
3459
|
+
softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
|
|
3460
|
+
hook.push(mappedHook);
|
|
3461
|
+
}
|
|
3462
|
+
});
|
|
3463
|
+
return hook.length ? hook : void 0;
|
|
3464
|
+
} else {
|
|
3465
|
+
if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
|
|
3466
|
+
return dir[mappedName];
|
|
3467
|
+
}
|
|
3394
3468
|
}
|
|
3395
3469
|
}
|
|
3396
3470
|
//#endregion
|
|
@@ -3575,7 +3649,7 @@ function instanceWatch(source, value, options) {
|
|
|
3575
3649
|
}
|
|
3576
3650
|
const prev = setCurrentInstance(this);
|
|
3577
3651
|
const res = doWatch(getter, cb.bind(publicThis), options);
|
|
3578
|
-
|
|
3652
|
+
restoreCurrentInstance(prev);
|
|
3579
3653
|
return res;
|
|
3580
3654
|
}
|
|
3581
3655
|
function createPathGetter(ctx, path) {
|
|
@@ -3597,15 +3671,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
|
|
|
3597
3671
|
const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
|
|
3598
3672
|
const resolveTarget = (props, select) => {
|
|
3599
3673
|
const targetSelector = props && props.to;
|
|
3600
|
-
if (isString(targetSelector))
|
|
3601
|
-
|
|
3602
|
-
|
|
3674
|
+
if (isString(targetSelector)) {
|
|
3675
|
+
if (!select) {
|
|
3676
|
+
warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
|
|
3677
|
+
return null;
|
|
3678
|
+
} else {
|
|
3679
|
+
const target = select(targetSelector);
|
|
3680
|
+
if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
|
|
3681
|
+
return target;
|
|
3682
|
+
}
|
|
3603
3683
|
} else {
|
|
3604
|
-
const target = select(targetSelector);
|
|
3605
|
-
if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
|
|
3606
|
-
return target;
|
|
3607
|
-
}
|
|
3608
|
-
else {
|
|
3609
3684
|
if (!targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
|
|
3610
3685
|
return targetSelector;
|
|
3611
3686
|
}
|
|
@@ -3643,7 +3718,8 @@ const TeleportImpl = {
|
|
|
3643
3718
|
if (pendingMounts.get(vnode) !== mountJob) return;
|
|
3644
3719
|
pendingMounts.delete(vnode);
|
|
3645
3720
|
if (isTeleportDisabled(vnode.props)) {
|
|
3646
|
-
|
|
3721
|
+
const mountContainer = parentNode(vnode.el) || container;
|
|
3722
|
+
mount(vnode, mountContainer, vnode.anchor);
|
|
3647
3723
|
updateCssVars(vnode, true);
|
|
3648
3724
|
}
|
|
3649
3725
|
mountToTarget(vnode);
|
|
@@ -3752,15 +3828,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
|
|
|
3752
3828
|
const disabled = isTeleportDisabled(vnode.props);
|
|
3753
3829
|
if (target) {
|
|
3754
3830
|
const targetNode = target._lpa || target.firstChild;
|
|
3755
|
-
if (vnode.shapeFlag & 16)
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3831
|
+
if (vnode.shapeFlag & 16) {
|
|
3832
|
+
if (disabled) {
|
|
3833
|
+
hydrateDisabledTeleport(node, vnode);
|
|
3834
|
+
hydrateAnchor(target, targetNode);
|
|
3835
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
3836
|
+
} else {
|
|
3837
|
+
vnode.anchor = nextSibling(node);
|
|
3838
|
+
hydrateAnchor(target, targetNode);
|
|
3839
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
3840
|
+
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3841
|
+
}
|
|
3764
3842
|
}
|
|
3765
3843
|
updateCssVars(vnode, disabled);
|
|
3766
3844
|
} else if (disabled) {
|
|
@@ -3838,59 +3916,27 @@ const BaseTransitionPropsValidators = {
|
|
|
3838
3916
|
onAfterAppear: TransitionHookValidator,
|
|
3839
3917
|
onAppearCancelled: TransitionHookValidator
|
|
3840
3918
|
};
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3919
|
+
function isEmptyTransitionChild(vnode, instance) {
|
|
3920
|
+
if (vnode.type === Comment) return true;
|
|
3921
|
+
if (vnode.type === VaporSlot || isVaporComponent(vnode.type)) return !getVaporInterface(instance, vnode).hasTransitionChild(vnode);
|
|
3922
|
+
return !!vnode.component && isEmptyTransitionChild(vnode.component.subTree, instance);
|
|
3923
|
+
}
|
|
3845
3924
|
const BaseTransitionImpl = {
|
|
3846
3925
|
name: `BaseTransition`,
|
|
3847
3926
|
props: BaseTransitionPropsValidators,
|
|
3848
3927
|
setup(props, { slots }) {
|
|
3849
3928
|
const instance = getCurrentInstance();
|
|
3850
3929
|
const state = useTransitionState();
|
|
3930
|
+
let resumeAfterLeave;
|
|
3851
3931
|
return () => {
|
|
3852
|
-
const
|
|
3853
|
-
const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
|
|
3932
|
+
const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
|
|
3854
3933
|
if (!child) return;
|
|
3855
3934
|
const rawProps = /* @__PURE__ */ toRaw(props);
|
|
3856
3935
|
const { mode } = rawProps;
|
|
3857
3936
|
checkTransitionMode(mode);
|
|
3858
|
-
|
|
3859
|
-
|
|
3860
|
-
|
|
3861
|
-
let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
|
|
3862
|
-
if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
|
|
3863
|
-
let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
|
|
3864
|
-
if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
|
|
3865
|
-
let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
|
|
3866
|
-
setTransitionHooks(oldInnerChild, leavingHooks);
|
|
3867
|
-
if (mode === "out-in" && innerChild.type !== Comment) {
|
|
3868
|
-
state.isLeaving = true;
|
|
3869
|
-
leavingHooks.afterLeave = () => {
|
|
3870
|
-
state.isLeaving = false;
|
|
3871
|
-
if (!(instance.job.flags & 4)) instance.update();
|
|
3872
|
-
delete leavingHooks.afterLeave;
|
|
3873
|
-
oldInnerChild = void 0;
|
|
3874
|
-
};
|
|
3875
|
-
return emptyPlaceholder(child);
|
|
3876
|
-
} else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
3877
|
-
const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
|
|
3878
|
-
leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
|
|
3879
|
-
el[leaveCbKey] = () => {
|
|
3880
|
-
earlyRemove();
|
|
3881
|
-
el[leaveCbKey] = void 0;
|
|
3882
|
-
delete enterHooks.delayedLeave;
|
|
3883
|
-
oldInnerChild = void 0;
|
|
3884
|
-
};
|
|
3885
|
-
enterHooks.delayedLeave = () => {
|
|
3886
|
-
delayedLeave();
|
|
3887
|
-
delete enterHooks.delayedLeave;
|
|
3888
|
-
oldInnerChild = void 0;
|
|
3889
|
-
};
|
|
3890
|
-
};
|
|
3891
|
-
else oldInnerChild = void 0;
|
|
3892
|
-
} else if (oldInnerChild) oldInnerChild = void 0;
|
|
3893
|
-
return child;
|
|
3937
|
+
return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
|
|
3938
|
+
if (!(instance.job.flags & 4)) instance.update();
|
|
3939
|
+
}) : NOOP);
|
|
3894
3940
|
};
|
|
3895
3941
|
}
|
|
3896
3942
|
};
|
|
@@ -3923,7 +3969,7 @@ function getLeavingNodesForType(state, vnode) {
|
|
|
3923
3969
|
function resolveTransitionHooks(vnode, props, state, instance, postClone) {
|
|
3924
3970
|
const key = String(vnode.key);
|
|
3925
3971
|
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
3926
|
-
|
|
3972
|
+
const hooks = baseResolveTransitionHooks({
|
|
3927
3973
|
isLeaving: () => leavingVNodesCache[key] === vnode,
|
|
3928
3974
|
setLeavingNodeCache: () => {
|
|
3929
3975
|
leavingVNodesCache[key] = vnode;
|
|
@@ -3941,6 +3987,13 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
|
|
|
3941
3987
|
return hooks;
|
|
3942
3988
|
}
|
|
3943
3989
|
}, props, state, instance);
|
|
3990
|
+
if (vnode.type === VaporSlot) extend(hooks, {
|
|
3991
|
+
__vapor: true,
|
|
3992
|
+
props,
|
|
3993
|
+
state,
|
|
3994
|
+
instance
|
|
3995
|
+
});
|
|
3996
|
+
return hooks;
|
|
3944
3997
|
}
|
|
3945
3998
|
function baseResolveTransitionHooks(context, props, state, instance) {
|
|
3946
3999
|
const { isLeaving, setLeavingNodeCache, unsetLeavingNodeCache, earlyRemove, cloneHooks } = context;
|
|
@@ -3960,8 +4013,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3960
4013
|
persisted,
|
|
3961
4014
|
beforeEnter(el) {
|
|
3962
4015
|
let hook = onBeforeEnter;
|
|
3963
|
-
if (!state.isMounted)
|
|
3964
|
-
|
|
4016
|
+
if (!state.isMounted) {
|
|
4017
|
+
if (appear) hook = onBeforeAppear || onBeforeEnter;
|
|
4018
|
+
else return;
|
|
4019
|
+
}
|
|
3965
4020
|
if (el[leaveCbKey]) el[leaveCbKey](true);
|
|
3966
4021
|
earlyRemove();
|
|
3967
4022
|
callHook(hook, [el]);
|
|
@@ -3971,11 +4026,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3971
4026
|
let hook = onEnter;
|
|
3972
4027
|
let afterHook = onAfterEnter;
|
|
3973
4028
|
let cancelHook = onEnterCancelled;
|
|
3974
|
-
if (!state.isMounted)
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
4029
|
+
if (!state.isMounted) {
|
|
4030
|
+
if (appear) {
|
|
4031
|
+
hook = onAppear || onEnter;
|
|
4032
|
+
afterHook = onAfterAppear || onAfterEnter;
|
|
4033
|
+
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
4034
|
+
} else return;
|
|
4035
|
+
}
|
|
3979
4036
|
let called = false;
|
|
3980
4037
|
el[enterCbKey$1] = (cancelled) => {
|
|
3981
4038
|
if (called) return;
|
|
@@ -4009,7 +4066,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
4009
4066
|
else done();
|
|
4010
4067
|
},
|
|
4011
4068
|
clone(node) {
|
|
4012
|
-
return cloneHooks(node);
|
|
4069
|
+
return cloneHooks ? cloneHooks(node) : hooks;
|
|
4013
4070
|
}
|
|
4014
4071
|
};
|
|
4015
4072
|
return hooks;
|
|
@@ -4033,16 +4090,91 @@ function getInnerChild$1(vnode) {
|
|
|
4033
4090
|
if (shapeFlag & 32 && isFunction(children.default)) return children.default();
|
|
4034
4091
|
}
|
|
4035
4092
|
}
|
|
4093
|
+
function resolveTransitionChild(children, renderEmpty = false) {
|
|
4094
|
+
const branches = children && getTransitionRawChildren(children, true);
|
|
4095
|
+
return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
|
|
4096
|
+
}
|
|
4097
|
+
/**
|
|
4098
|
+
* @internal
|
|
4099
|
+
*/
|
|
4100
|
+
function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
|
|
4101
|
+
if (state.isLeaving) return emptyPlaceholder(next);
|
|
4102
|
+
const nextInner = getInnerChild$1(next);
|
|
4103
|
+
if (!nextInner) return emptyPlaceholder(next);
|
|
4104
|
+
let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
|
|
4105
|
+
if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
|
|
4106
|
+
enterHooks = hooks;
|
|
4107
|
+
});
|
|
4108
|
+
if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
|
|
4109
|
+
if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
|
|
4110
|
+
const mode = props.mode;
|
|
4111
|
+
const previousInner = previous && getInnerChild$1(previous);
|
|
4112
|
+
if (previous && previousInner && !isSameVNodeType(previousInner, nextInner) && !isEmptyTransitionChild(previousInner, instance)) {
|
|
4113
|
+
const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
|
|
4114
|
+
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);
|
|
4115
|
+
}
|
|
4116
|
+
return next;
|
|
4117
|
+
}
|
|
4118
|
+
function forwardDelayedLeave(hooks, source) {
|
|
4119
|
+
const delayedLeave = source && source.delayedLeave;
|
|
4120
|
+
if (!delayedLeave) return;
|
|
4121
|
+
hooks.delayedLeave = () => {
|
|
4122
|
+
if (source.delayedLeave === delayedLeave) delayedLeave();
|
|
4123
|
+
delete hooks.delayedLeave;
|
|
4124
|
+
};
|
|
4125
|
+
}
|
|
4126
|
+
function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
|
|
4127
|
+
return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
|
|
4128
|
+
}
|
|
4129
|
+
function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
|
|
4130
|
+
if (props.mode === "out-in") {
|
|
4131
|
+
state.isLeaving = true;
|
|
4132
|
+
leavingHooks.afterLeave = () => {
|
|
4133
|
+
state.isLeaving = false;
|
|
4134
|
+
resumeAfterLeave();
|
|
4135
|
+
delete leavingHooks.afterLeave;
|
|
4136
|
+
};
|
|
4137
|
+
return true;
|
|
4138
|
+
} else if (props.mode === "in-out" && getEnterHooks) {
|
|
4139
|
+
let delayedLeavingVNode = leavingVNode;
|
|
4140
|
+
leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
|
|
4141
|
+
const enterHooks = getEnterHooks();
|
|
4142
|
+
if (!enterHooks) {
|
|
4143
|
+
delayedLeave();
|
|
4144
|
+
return;
|
|
4145
|
+
}
|
|
4146
|
+
const vnode = delayedLeavingVNode;
|
|
4147
|
+
const leavingVNodesCache = getLeavingNodesForType(state, vnode);
|
|
4148
|
+
leavingVNodesCache[String(vnode.key)] = vnode;
|
|
4149
|
+
el[leaveCbKey] = () => {
|
|
4150
|
+
earlyRemove();
|
|
4151
|
+
el[leaveCbKey] = void 0;
|
|
4152
|
+
delete enterHooks.delayedLeave;
|
|
4153
|
+
delayedLeavingVNode = void 0;
|
|
4154
|
+
};
|
|
4155
|
+
enterHooks.delayedLeave = () => {
|
|
4156
|
+
delayedLeave();
|
|
4157
|
+
delete enterHooks.delayedLeave;
|
|
4158
|
+
delayedLeavingVNode = void 0;
|
|
4159
|
+
};
|
|
4160
|
+
};
|
|
4161
|
+
}
|
|
4162
|
+
return false;
|
|
4163
|
+
}
|
|
4036
4164
|
function setTransitionHooks(vnode, hooks) {
|
|
4037
|
-
if (vnode.shapeFlag & 6 && vnode.component)
|
|
4038
|
-
else {
|
|
4165
|
+
if (vnode.shapeFlag & 6 && vnode.component) {
|
|
4039
4166
|
vnode.transition = hooks;
|
|
4040
|
-
setTransitionHooks(vnode.component
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4167
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
|
|
4168
|
+
else {
|
|
4169
|
+
const subTree = vnode.component.subTree;
|
|
4170
|
+
return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
|
|
4171
|
+
}
|
|
4172
|
+
} else if (vnode.shapeFlag & 128) {
|
|
4173
|
+
const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
|
|
4174
|
+
const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
|
|
4175
|
+
return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
|
|
4045
4176
|
} else vnode.transition = hooks;
|
|
4177
|
+
return hooks;
|
|
4046
4178
|
}
|
|
4047
4179
|
function getTransitionRawChildren(children, keepComment = false, parentKey) {
|
|
4048
4180
|
let ret = [];
|
|
@@ -4066,9 +4198,9 @@ function checkTransitionMode(mode) {
|
|
|
4066
4198
|
}
|
|
4067
4199
|
//#endregion
|
|
4068
4200
|
//#region packages/runtime-core/src/apiDefineComponent.ts
|
|
4069
|
-
|
|
4201
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
4070
4202
|
function defineComponent(options, extraOptions) {
|
|
4071
|
-
return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
|
|
4203
|
+
return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
|
|
4072
4204
|
}
|
|
4073
4205
|
//#endregion
|
|
4074
4206
|
//#region packages/runtime-core/src/helpers/useId.ts
|
|
@@ -4165,15 +4297,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
4165
4297
|
if (rawRef.f) {
|
|
4166
4298
|
const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
|
|
4167
4299
|
if (isUnmount) isArray(existing) && remove(existing, refValue);
|
|
4168
|
-
else if (!isArray(existing))
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4300
|
+
else if (!isArray(existing)) {
|
|
4301
|
+
if (_isString) {
|
|
4302
|
+
refs[ref] = [refValue];
|
|
4303
|
+
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
4304
|
+
} else {
|
|
4305
|
+
const newVal = [refValue];
|
|
4306
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
4307
|
+
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
4308
|
+
}
|
|
4309
|
+
} else if (!existing.includes(refValue)) existing.push(refValue);
|
|
4177
4310
|
} else if (_isString) {
|
|
4178
4311
|
refs[ref] = value;
|
|
4179
4312
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
@@ -4225,7 +4358,18 @@ const logMismatchError = () => {
|
|
|
4225
4358
|
hasLoggedMismatchError = true;
|
|
4226
4359
|
};
|
|
4227
4360
|
const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
|
|
4228
|
-
const isMathMLContainer = (container) =>
|
|
4361
|
+
const isMathMLContainer = (container) => {
|
|
4362
|
+
if (!container.namespaceURI.includes("MathML")) return false;
|
|
4363
|
+
if (container.tagName !== "annotation-xml") return true;
|
|
4364
|
+
const encoding = container.getAttribute("encoding");
|
|
4365
|
+
return !encoding || !encoding.includes("html");
|
|
4366
|
+
};
|
|
4367
|
+
/**
|
|
4368
|
+
* Resolve the element namespace a container's children should be created in.
|
|
4369
|
+
* The live DOM is the source of truth, so this also covers containers that are
|
|
4370
|
+
* only known at runtime (interop boundaries, teleport targets).
|
|
4371
|
+
* @internal
|
|
4372
|
+
*/
|
|
4229
4373
|
const getContainerType = (container) => {
|
|
4230
4374
|
if (container.nodeType !== 1) return void 0;
|
|
4231
4375
|
if (isSVGContainer(container)) return "svg";
|
|
@@ -4249,7 +4393,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4249
4393
|
};
|
|
4250
4394
|
const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
|
|
4251
4395
|
optimized = optimized || !!vnode.dynamicChildren;
|
|
4252
|
-
const isFragmentStart = isComment(node) && node.data === "[";
|
|
4396
|
+
const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
|
|
4253
4397
|
const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
|
|
4254
4398
|
const { type, ref, shapeFlag, patchFlag } = vnode;
|
|
4255
4399
|
let domType = node.nodeType;
|
|
@@ -4263,11 +4407,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4263
4407
|
let nextNode = null;
|
|
4264
4408
|
switch (type) {
|
|
4265
4409
|
case Text:
|
|
4266
|
-
if (domType !== 3)
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
|
|
4270
|
-
|
|
4410
|
+
if (domType !== 3) {
|
|
4411
|
+
if (vnode.children === "") {
|
|
4412
|
+
insert(vnode.el = createText(""), parentNode(node), node);
|
|
4413
|
+
nextNode = node;
|
|
4414
|
+
} else nextNode = onMismatch();
|
|
4415
|
+
} else {
|
|
4271
4416
|
if (node.data !== vnode.children) {
|
|
4272
4417
|
warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
|
|
4273
4418
|
logMismatchError();
|
|
@@ -4304,45 +4449,35 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4304
4449
|
else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4305
4450
|
break;
|
|
4306
4451
|
case VaporSlot:
|
|
4307
|
-
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
|
|
4452
|
+
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
|
|
4308
4453
|
break;
|
|
4309
|
-
default: if (shapeFlag & 1)
|
|
4310
|
-
|
|
4311
|
-
|
|
4454
|
+
default: if (shapeFlag & 1) {
|
|
4455
|
+
if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
|
|
4456
|
+
else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4457
|
+
} else if (shapeFlag & 6) {
|
|
4312
4458
|
vnode.slotScopeIds = slotScopeIds;
|
|
4313
4459
|
const container = parentNode(node);
|
|
4314
4460
|
if (isFragmentStart) nextNode = locateClosingAnchor(node);
|
|
4315
4461
|
else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
|
|
4316
4462
|
else nextNode = nextSibling(node);
|
|
4317
|
-
if (vnode.type.__vapor)
|
|
4318
|
-
|
|
4319
|
-
getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
|
|
4320
|
-
if (vnode.dirs) {
|
|
4321
|
-
invokeDirectiveHook(vnode, null, parentComponent, "created");
|
|
4322
|
-
invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
|
|
4323
|
-
}
|
|
4324
|
-
}, () => {
|
|
4325
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
|
|
4326
|
-
});
|
|
4327
|
-
if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
4328
|
-
const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
|
|
4329
|
-
if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
|
|
4330
|
-
} else {
|
|
4463
|
+
if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
|
|
4464
|
+
else {
|
|
4331
4465
|
mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
|
|
4332
4466
|
const component = vnode.component;
|
|
4333
|
-
if (isAsyncWrapper(vnode)
|
|
4467
|
+
if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
|
|
4334
4468
|
let subTree;
|
|
4335
4469
|
if (isFragmentStart) {
|
|
4336
|
-
subTree = createVNode(
|
|
4470
|
+
subTree = createVNode(Static);
|
|
4337
4471
|
subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
|
|
4338
|
-
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
|
|
4472
|
+
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
|
|
4339
4473
|
subTree.el = node;
|
|
4340
4474
|
component.subTree = subTree;
|
|
4341
4475
|
}
|
|
4342
4476
|
}
|
|
4343
|
-
} else if (shapeFlag & 64)
|
|
4344
|
-
|
|
4345
|
-
|
|
4477
|
+
} else if (shapeFlag & 64) {
|
|
4478
|
+
if (domType !== 8) nextNode = onMismatch();
|
|
4479
|
+
else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
|
|
4480
|
+
} else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
|
|
4346
4481
|
else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
|
|
4347
4482
|
}
|
|
4348
4483
|
if (ref != null) setRef(ref, null, parentSuspense, vnode);
|
|
@@ -4394,7 +4529,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4394
4529
|
const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
|
|
4395
4530
|
for (const key in props) {
|
|
4396
4531
|
if (!(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
|
|
4397
|
-
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key))
|
|
4532
|
+
if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
|
|
4533
|
+
if (isUnchangedResourceProp(el, key, props[key])) continue;
|
|
4534
|
+
patchProp(el, key, null, props[key], namespace, parentComponent);
|
|
4535
|
+
}
|
|
4398
4536
|
}
|
|
4399
4537
|
}
|
|
4400
4538
|
let vnodeHooks;
|
|
@@ -4442,8 +4580,9 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4442
4580
|
const { slotScopeIds: fragmentSlotScopeIds } = vnode;
|
|
4443
4581
|
if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
|
|
4444
4582
|
const container = parentNode(node);
|
|
4445
|
-
const
|
|
4446
|
-
|
|
4583
|
+
const first = nextSibling(node);
|
|
4584
|
+
const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4585
|
+
if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
|
|
4447
4586
|
else {
|
|
4448
4587
|
logMismatchError();
|
|
4449
4588
|
insert(vnode.anchor = createComment(`]`), container, next);
|
|
@@ -4452,7 +4591,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4452
4591
|
};
|
|
4453
4592
|
const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
|
|
4454
4593
|
if (!isNodeMismatchAllowed(node, vnode)) {
|
|
4455
|
-
warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
|
|
4594
|
+
warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && (node.data === "[" || node.data === "(") ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
|
|
4456
4595
|
logMismatchError();
|
|
4457
4596
|
}
|
|
4458
4597
|
vnode.el = null;
|
|
@@ -4468,20 +4607,22 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4468
4607
|
const container = parentNode(node);
|
|
4469
4608
|
remove(node);
|
|
4470
4609
|
patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
|
|
4471
|
-
if (parentComponent) {
|
|
4610
|
+
if (parentComponent && parentComponent.vnode) {
|
|
4472
4611
|
parentComponent.vnode.el = vnode.el;
|
|
4473
4612
|
updateHOCHostEl(parentComponent, vnode.el);
|
|
4474
4613
|
}
|
|
4475
4614
|
return next;
|
|
4476
4615
|
};
|
|
4477
|
-
const locateClosingAnchor = (node, open = "[", close = "]") => {
|
|
4616
|
+
const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
|
|
4478
4617
|
let match = 0;
|
|
4479
4618
|
while (node) {
|
|
4480
4619
|
node = nextSibling(node);
|
|
4481
4620
|
if (node && isComment(node)) {
|
|
4482
4621
|
if (node.data === open) match++;
|
|
4483
|
-
if (node.data === close)
|
|
4484
|
-
|
|
4622
|
+
if (node.data === close) {
|
|
4623
|
+
if (match === 0) return nextSibling(node);
|
|
4624
|
+
else match--;
|
|
4625
|
+
}
|
|
4485
4626
|
}
|
|
4486
4627
|
}
|
|
4487
4628
|
return node;
|
|
@@ -4491,7 +4632,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4491
4632
|
if (parentNode) parentNode.replaceChild(newNode, oldNode);
|
|
4492
4633
|
let parent = parentComponent;
|
|
4493
4634
|
while (parent) {
|
|
4494
|
-
if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
4635
|
+
if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
4495
4636
|
parent = parent.parent;
|
|
4496
4637
|
}
|
|
4497
4638
|
};
|
|
@@ -4500,6 +4641,16 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4500
4641
|
const isTemplateNode$1 = (node) => {
|
|
4501
4642
|
return node.nodeType === 1 && node.tagName === "TEMPLATE";
|
|
4502
4643
|
};
|
|
4644
|
+
const resourceProps = /*@__PURE__*/ new Set([
|
|
4645
|
+
"src",
|
|
4646
|
+
"srcset",
|
|
4647
|
+
"href",
|
|
4648
|
+
"poster"
|
|
4649
|
+
]);
|
|
4650
|
+
function isUnchangedResourceProp(el, key, clientValue) {
|
|
4651
|
+
if (!resourceProps.has(key)) return false;
|
|
4652
|
+
return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
|
|
4653
|
+
}
|
|
4503
4654
|
/**
|
|
4504
4655
|
* Dev only
|
|
4505
4656
|
*/
|
|
@@ -4543,7 +4694,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
|
|
|
4543
4694
|
function getAttributeMismatch(el, key, clientValue) {
|
|
4544
4695
|
let actual;
|
|
4545
4696
|
let expected;
|
|
4546
|
-
if (
|
|
4697
|
+
if (key === "hidden") {
|
|
4698
|
+
actual = normalizeHiddenValue(el.getAttribute(key));
|
|
4699
|
+
expected = normalizeHiddenValue(clientValue);
|
|
4700
|
+
} else if (isBooleanAttr(key)) {
|
|
4547
4701
|
actual = el.hasAttribute(key);
|
|
4548
4702
|
expected = includeBooleanAttr(clientValue);
|
|
4549
4703
|
} else if (clientValue == null) {
|
|
@@ -4571,6 +4725,11 @@ function warnPropMismatch(el, mismatchKey, mismatchType, actual, expected) {
|
|
|
4571
4725
|
}
|
|
4572
4726
|
return false;
|
|
4573
4727
|
}
|
|
4728
|
+
function normalizeHiddenValue(value) {
|
|
4729
|
+
if (!isRenderableAttrValue(value)) return false;
|
|
4730
|
+
if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
|
|
4731
|
+
return includeBooleanAttr(value) ? "" : false;
|
|
4732
|
+
}
|
|
4574
4733
|
function toClassSet(str) {
|
|
4575
4734
|
return new Set(str.trim().split(/\s+/));
|
|
4576
4735
|
}
|
|
@@ -4709,16 +4868,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
|
|
|
4709
4868
|
return teardown;
|
|
4710
4869
|
};
|
|
4711
4870
|
function forEachElement(node, cb) {
|
|
4712
|
-
if (isComment(node) && node.data === "[") {
|
|
4871
|
+
if (isComment(node) && (node.data === "[" || node.data === "(")) {
|
|
4872
|
+
const open = node.data;
|
|
4873
|
+
const close = open === "[" ? "]" : ")";
|
|
4713
4874
|
let depth = 1;
|
|
4714
4875
|
let next = node.nextSibling;
|
|
4715
4876
|
while (next) {
|
|
4716
4877
|
if (next.nodeType === 1) {
|
|
4717
4878
|
if (cb(next) === false) break;
|
|
4718
4879
|
} else if (isComment(next)) {
|
|
4719
|
-
if (next.data ===
|
|
4880
|
+
if (next.data === close) {
|
|
4720
4881
|
if (--depth === 0) break;
|
|
4721
|
-
} else if (next.data ===
|
|
4882
|
+
} else if (next.data === open) depth++;
|
|
4722
4883
|
}
|
|
4723
4884
|
next = next.nextSibling;
|
|
4724
4885
|
}
|
|
@@ -4727,14 +4888,14 @@ function forEachElement(node, cb) {
|
|
|
4727
4888
|
//#endregion
|
|
4728
4889
|
//#region packages/runtime-core/src/apiAsyncComponent.ts
|
|
4729
4890
|
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
|
|
4730
|
-
|
|
4891
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
4731
4892
|
function defineAsyncComponent(source) {
|
|
4732
4893
|
const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
|
|
4733
4894
|
return /* @__PURE__ */ defineComponent({
|
|
4734
4895
|
name: "AsyncComponentWrapper",
|
|
4735
4896
|
__asyncLoader: load,
|
|
4736
4897
|
__asyncHydrate(el, instance, hydrate) {
|
|
4737
|
-
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
|
|
4898
|
+
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
|
|
4738
4899
|
},
|
|
4739
4900
|
get __asyncResolved() {
|
|
4740
4901
|
return getResolvedComp();
|
|
@@ -4853,10 +5014,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
|
|
|
4853
5014
|
* shared between core and vapor
|
|
4854
5015
|
* @internal
|
|
4855
5016
|
*/
|
|
4856
|
-
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
|
|
5017
|
+
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
|
|
4857
5018
|
const wasConnected = el.isConnected;
|
|
4858
5019
|
let patched = false;
|
|
4859
|
-
(instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
5020
|
+
if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
4860
5021
|
const performHydrate = () => {
|
|
4861
5022
|
if (patched) {
|
|
4862
5023
|
{
|
|
@@ -4946,10 +5107,13 @@ const KeepAliveImpl = {
|
|
|
4946
5107
|
});
|
|
4947
5108
|
let pendingCacheKey = null;
|
|
4948
5109
|
const cacheSubtree = () => {
|
|
4949
|
-
if (pendingCacheKey != null)
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
5110
|
+
if (pendingCacheKey != null) {
|
|
5111
|
+
if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
|
|
5112
|
+
const vnode = getInnerChild(keepAliveInstance.subTree);
|
|
5113
|
+
if (vnode.component) cache.set(pendingCacheKey, vnode);
|
|
5114
|
+
}, void 0, keepAliveInstance.subTree.suspense);
|
|
5115
|
+
else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
|
|
5116
|
+
}
|
|
4953
5117
|
};
|
|
4954
5118
|
onMounted(cacheSubtree);
|
|
4955
5119
|
onUpdated(cacheSubtree);
|
|
@@ -5020,7 +5184,7 @@ const decorate$2 = (t) => {
|
|
|
5020
5184
|
t.__isBuiltIn = true;
|
|
5021
5185
|
return t;
|
|
5022
5186
|
};
|
|
5023
|
-
const KeepAlive =
|
|
5187
|
+
const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
|
|
5024
5188
|
function matches(pattern, name) {
|
|
5025
5189
|
if (isArray(pattern)) return pattern.some((p) => matches(p, name));
|
|
5026
5190
|
else if (isString(pattern)) return pattern.split(",").includes(name);
|
|
@@ -5111,7 +5275,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
|
|
|
5111
5275
|
try {
|
|
5112
5276
|
return callWithAsyncErrorHandling(hook, target, type, args);
|
|
5113
5277
|
} finally {
|
|
5114
|
-
|
|
5278
|
+
restoreCurrentInstance(prev);
|
|
5115
5279
|
setActiveSub(prevSub);
|
|
5116
5280
|
}
|
|
5117
5281
|
});
|
|
@@ -5236,16 +5400,17 @@ function compatH(type, propsOrChildren, children) {
|
|
|
5236
5400
|
}
|
|
5237
5401
|
const l = arguments.length;
|
|
5238
5402
|
const is2ndArgArrayChildren = isArray(propsOrChildren);
|
|
5239
|
-
if (l === 2 || is2ndArgArrayChildren)
|
|
5240
|
-
if (
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5403
|
+
if (l === 2 || is2ndArgArrayChildren) {
|
|
5404
|
+
if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
|
|
5405
|
+
if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
|
|
5406
|
+
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
|
|
5407
|
+
} else return convertLegacySlots(createVNode(type, null, propsOrChildren));
|
|
5408
|
+
} else {
|
|
5244
5409
|
if (isVNode(children)) children = [children];
|
|
5245
5410
|
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
|
|
5246
5411
|
}
|
|
5247
5412
|
}
|
|
5248
|
-
const skipLegacyRootLevelProps =
|
|
5413
|
+
const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
|
|
5249
5414
|
function convertLegacyProps(legacyProps, type) {
|
|
5250
5415
|
if (!legacyProps) return null;
|
|
5251
5416
|
const converted = {};
|
|
@@ -5257,8 +5422,10 @@ function convertLegacyProps(legacyProps, type) {
|
|
|
5257
5422
|
if (key === "nativeOn") handlerKey += `Native`;
|
|
5258
5423
|
const existing = converted[handlerKey];
|
|
5259
5424
|
const incoming = listeners[event];
|
|
5260
|
-
if (existing !== incoming)
|
|
5261
|
-
|
|
5425
|
+
if (existing !== incoming) {
|
|
5426
|
+
if (existing) converted[handlerKey] = [].concat(existing, incoming);
|
|
5427
|
+
else converted[handlerKey] = incoming;
|
|
5428
|
+
}
|
|
5262
5429
|
}
|
|
5263
5430
|
} else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
|
|
5264
5431
|
if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
|
|
@@ -5357,7 +5524,7 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5357
5524
|
const legacyFn = comp.render;
|
|
5358
5525
|
const Func = (props, ctx) => {
|
|
5359
5526
|
const instance = getCurrentInstance();
|
|
5360
|
-
|
|
5527
|
+
const legacyCtx = {
|
|
5361
5528
|
props,
|
|
5362
5529
|
children: instance.vnode.children || [],
|
|
5363
5530
|
data: instance.vnode.props || {},
|
|
@@ -5377,7 +5544,8 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5377
5544
|
}
|
|
5378
5545
|
return {};
|
|
5379
5546
|
}
|
|
5380
|
-
}
|
|
5547
|
+
};
|
|
5548
|
+
return legacyFn(compatH, legacyCtx);
|
|
5381
5549
|
};
|
|
5382
5550
|
Func.props = comp.props;
|
|
5383
5551
|
Func.displayName = comp.name;
|
|
@@ -5406,23 +5574,25 @@ function renderList(source, renderItem, cache, index) {
|
|
|
5406
5574
|
}
|
|
5407
5575
|
ret = new Array(source.length);
|
|
5408
5576
|
for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], i, void 0, cached && cached[i]);
|
|
5409
|
-
} else if (typeof source === "number")
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
5417
|
-
else {
|
|
5418
|
-
const keys = Object.keys(source);
|
|
5419
|
-
ret = new Array(keys.length);
|
|
5420
|
-
for (let i = 0, l = keys.length; i < l; i++) {
|
|
5421
|
-
const key = keys[i];
|
|
5422
|
-
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
5577
|
+
} else if (typeof source === "number") {
|
|
5578
|
+
if (!Number.isInteger(source) || source < 0) {
|
|
5579
|
+
warn$1(`The v-for range expects a positive integer value but got ${source}.`);
|
|
5580
|
+
ret = [];
|
|
5581
|
+
} else {
|
|
5582
|
+
ret = new Array(source);
|
|
5583
|
+
for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
|
|
5423
5584
|
}
|
|
5424
|
-
}
|
|
5425
|
-
|
|
5585
|
+
} else if (isObject(source)) {
|
|
5586
|
+
if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
5587
|
+
else {
|
|
5588
|
+
const keys = Object.keys(source);
|
|
5589
|
+
ret = new Array(keys.length);
|
|
5590
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
5591
|
+
const key = keys[i];
|
|
5592
|
+
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
5593
|
+
}
|
|
5594
|
+
}
|
|
5595
|
+
} else ret = [];
|
|
5426
5596
|
if (cache) cache[index] = ret;
|
|
5427
5597
|
return ret;
|
|
5428
5598
|
}
|
|
@@ -5447,18 +5617,45 @@ function createSlots(slots, dynamicSlots) {
|
|
|
5447
5617
|
//#endregion
|
|
5448
5618
|
//#region packages/runtime-core/src/helpers/renderSlot.ts
|
|
5449
5619
|
/**
|
|
5620
|
+
* Links a slot function to its raw vapor slot: a raw vapor slot carries
|
|
5621
|
+
* itself, and the wrapper the interop slots proxy hands out carries the raw
|
|
5622
|
+
* slot it wraps — one lookup answers both "is this a vapor slot" and
|
|
5623
|
+
* "which one". Internal to vapor interop.
|
|
5624
|
+
*/
|
|
5625
|
+
const rawVaporSlotKey = Symbol(`rawVaporSlot`);
|
|
5626
|
+
/**
|
|
5627
|
+
* Invokes a VDOM slot fallback under the outlet owner that produced it, the
|
|
5628
|
+
* way `renderSlot` would have rendered it inline. Vapor interop invokes
|
|
5629
|
+
* fallbacks late, outside any render, so it passes the owner recorded on the
|
|
5630
|
+
* vapor slot vnode. Internal to vapor interop.
|
|
5631
|
+
*/
|
|
5632
|
+
function invokeSlotFallback(fallback, owner) {
|
|
5633
|
+
if (!owner) return fallback();
|
|
5634
|
+
const prev = setCurrentRenderingInstance(owner);
|
|
5635
|
+
const prevStackSize = blockStack.length;
|
|
5636
|
+
try {
|
|
5637
|
+
return fallback();
|
|
5638
|
+
} finally {
|
|
5639
|
+
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
5640
|
+
setCurrentRenderingInstance(prev);
|
|
5641
|
+
}
|
|
5642
|
+
}
|
|
5643
|
+
/**
|
|
5450
5644
|
* Compiler runtime helper for rendering `<slot/>`
|
|
5451
5645
|
* @private
|
|
5452
5646
|
*/
|
|
5453
|
-
function renderSlot(slots, name, props
|
|
5647
|
+
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
5648
|
+
if (props == null) props = {};
|
|
5454
5649
|
let slot = slots[name];
|
|
5455
|
-
|
|
5456
|
-
const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
|
|
5650
|
+
const vaporSlot = slot && slot[rawVaporSlotKey];
|
|
5457
5651
|
if (vaporSlot) {
|
|
5458
5652
|
const ret = (openBlock(), createBlock(VaporSlot, props));
|
|
5459
5653
|
ret.vs = {
|
|
5460
5654
|
slot: vaporSlot,
|
|
5461
|
-
fallback
|
|
5655
|
+
outlets: fallback ? [{
|
|
5656
|
+
fallback,
|
|
5657
|
+
owner: currentRenderingInstance
|
|
5658
|
+
}] : void 0
|
|
5462
5659
|
};
|
|
5463
5660
|
if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
|
|
5464
5661
|
return ret;
|
|
@@ -5479,9 +5676,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
|
|
|
5479
5676
|
let rendered;
|
|
5480
5677
|
try {
|
|
5481
5678
|
const validSlotContent = slot && ensureValidVNode(slot(props));
|
|
5482
|
-
|
|
5679
|
+
let attached = false;
|
|
5680
|
+
if (fallback && validSlotContent && currentRenderingInstance) {
|
|
5681
|
+
const interop = currentRenderingInstance.appContext.vapor;
|
|
5682
|
+
if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
|
|
5683
|
+
}
|
|
5483
5684
|
const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
|
|
5484
5685
|
rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
|
|
5686
|
+
if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
|
|
5687
|
+
if (attached) rendered.vo = true;
|
|
5485
5688
|
} catch (err) {
|
|
5486
5689
|
for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
|
|
5487
5690
|
throw err;
|
|
@@ -5499,10 +5702,6 @@ function ensureValidVNode(vnodes) {
|
|
|
5499
5702
|
return true;
|
|
5500
5703
|
}) ? vnodes : null;
|
|
5501
5704
|
}
|
|
5502
|
-
function ensureVaporSlotFallback(vnodes, fallback) {
|
|
5503
|
-
let vaporSlot;
|
|
5504
|
-
if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
|
|
5505
|
-
}
|
|
5506
5705
|
//#endregion
|
|
5507
5706
|
//#region packages/runtime-core/src/helpers/toHandlers.ts
|
|
5508
5707
|
/**
|
|
@@ -5561,12 +5760,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
|
|
|
5561
5760
|
function mapKeyToName(slots) {
|
|
5562
5761
|
for (let i = 0; i < slots.length; i++) {
|
|
5563
5762
|
const fn = slots[i];
|
|
5564
|
-
if (fn)
|
|
5565
|
-
|
|
5763
|
+
if (fn) {
|
|
5764
|
+
if (isArray(fn)) mapKeyToName(fn);
|
|
5765
|
+
else fn.name = fn.key || "default";
|
|
5766
|
+
}
|
|
5566
5767
|
}
|
|
5567
5768
|
return slots;
|
|
5568
5769
|
}
|
|
5569
|
-
const staticCacheMap =
|
|
5770
|
+
const staticCacheMap = /*@__PURE__*/ new WeakMap();
|
|
5570
5771
|
function legacyRenderStatic(instance, index) {
|
|
5571
5772
|
let cache = staticCacheMap.get(instance);
|
|
5572
5773
|
if (!cache) staticCacheMap.set(instance, cache = []);
|
|
@@ -5699,11 +5900,38 @@ const getPublicInstance = (i) => {
|
|
|
5699
5900
|
if (isStatefulComponent(i)) return getComponentPublicInstance(i);
|
|
5700
5901
|
return getPublicInstance(i.parent);
|
|
5701
5902
|
};
|
|
5903
|
+
const resolveDevRootEl = (vnode) => {
|
|
5904
|
+
let found = false;
|
|
5905
|
+
while (true) {
|
|
5906
|
+
if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
|
|
5907
|
+
const root = filterSingleRoot(vnode.children);
|
|
5908
|
+
if (!root) return;
|
|
5909
|
+
vnode = root;
|
|
5910
|
+
found = true;
|
|
5911
|
+
continue;
|
|
5912
|
+
}
|
|
5913
|
+
const component = vnode.component;
|
|
5914
|
+
if (component && component.subTree) {
|
|
5915
|
+
vnode = component.subTree;
|
|
5916
|
+
continue;
|
|
5917
|
+
}
|
|
5918
|
+
const suspense = vnode.suspense;
|
|
5919
|
+
if (suspense && suspense.activeBranch) {
|
|
5920
|
+
vnode = suspense.activeBranch;
|
|
5921
|
+
continue;
|
|
5922
|
+
}
|
|
5923
|
+
return found ? vnode.el : void 0;
|
|
5924
|
+
}
|
|
5925
|
+
};
|
|
5926
|
+
const getDevRootFragmentEl = (i) => {
|
|
5927
|
+
const el = i.subTree && resolveDevRootEl(i.subTree);
|
|
5928
|
+
return el === void 0 ? i.vnode.el : el;
|
|
5929
|
+
};
|
|
5702
5930
|
let publicPropertiesMap;
|
|
5703
5931
|
const getPublicPropertiesMap = () => {
|
|
5704
5932
|
if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
|
|
5705
5933
|
$: (i) => i,
|
|
5706
|
-
$el: (i) => i
|
|
5934
|
+
$el: (i) => getDevRootFragmentEl(i),
|
|
5707
5935
|
$data: (i) => i.data,
|
|
5708
5936
|
$props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
|
|
5709
5937
|
$attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
|
|
@@ -5816,7 +6044,7 @@ PublicInstanceProxyHandlers.ownKeys = (target) => {
|
|
|
5816
6044
|
warn$1("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.");
|
|
5817
6045
|
return Reflect.ownKeys(target);
|
|
5818
6046
|
};
|
|
5819
|
-
const RuntimeCompiledPublicInstanceProxyHandlers =
|
|
6047
|
+
const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
|
|
5820
6048
|
get(target, key) {
|
|
5821
6049
|
if (key === Symbol.unscopables) return;
|
|
5822
6050
|
return PublicInstanceProxyHandlers.get(target, key, target);
|
|
@@ -6001,12 +6229,13 @@ function mergeDefaults(raw, defaults) {
|
|
|
6001
6229
|
for (const key in defaults) {
|
|
6002
6230
|
if (key.startsWith("__skip")) continue;
|
|
6003
6231
|
let opt = props[key];
|
|
6004
|
-
if (opt)
|
|
6005
|
-
|
|
6006
|
-
|
|
6007
|
-
|
|
6008
|
-
|
|
6009
|
-
|
|
6232
|
+
if (opt) {
|
|
6233
|
+
if (isArray(opt) || isFunction(opt)) opt = props[key] = {
|
|
6234
|
+
type: opt,
|
|
6235
|
+
default: defaults[key]
|
|
6236
|
+
};
|
|
6237
|
+
else opt.default = defaults[key];
|
|
6238
|
+
} else if (opt === null) opt = props[key] = { default: defaults[key] };
|
|
6010
6239
|
else warn$1(`props default key "${key}" has no corresponding declaration.`);
|
|
6011
6240
|
if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
|
|
6012
6241
|
}
|
|
@@ -6056,37 +6285,32 @@ function createPropsRestProxy(props, excludedKeys) {
|
|
|
6056
6285
|
function withAsyncContext(getAwaitable) {
|
|
6057
6286
|
const ctx = getCurrentGenericInstance();
|
|
6058
6287
|
const inSSRSetup = isInSSRComponentSetup;
|
|
6059
|
-
const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
|
|
6060
6288
|
if (!ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
|
|
6061
6289
|
let awaitable = getAwaitable();
|
|
6062
6290
|
setCurrentInstance(null, void 0);
|
|
6063
6291
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
6064
6292
|
const restore = () => {
|
|
6065
|
-
const
|
|
6293
|
+
const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
|
|
6066
6294
|
setCurrentInstance(ctx);
|
|
6067
6295
|
if (inSSRSetup) setInSSRSetupState(true);
|
|
6068
|
-
|
|
6069
|
-
return () => {
|
|
6070
|
-
if (reset) reset();
|
|
6071
|
-
if (resetStoppedScope) resetStoppedScope.reset();
|
|
6072
|
-
};
|
|
6296
|
+
return stoppedScope;
|
|
6073
6297
|
};
|
|
6074
6298
|
const cleanup = () => {
|
|
6075
6299
|
setCurrentInstance(null, void 0);
|
|
6076
6300
|
if (inSSRSetup) setInSSRSetupState(false);
|
|
6077
6301
|
};
|
|
6078
6302
|
if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
|
|
6079
|
-
const
|
|
6303
|
+
const stoppedScope = restore();
|
|
6080
6304
|
Promise.resolve().then(() => Promise.resolve().then(() => {
|
|
6081
|
-
if (
|
|
6305
|
+
if (stoppedScope) stoppedScope.reset();
|
|
6082
6306
|
cleanup();
|
|
6083
6307
|
}));
|
|
6084
6308
|
throw e;
|
|
6085
6309
|
});
|
|
6086
6310
|
return [awaitable, () => {
|
|
6087
|
-
const
|
|
6311
|
+
const stoppedScope = restore();
|
|
6088
6312
|
Promise.resolve().then(() => {
|
|
6089
|
-
if (
|
|
6313
|
+
if (stoppedScope) stoppedScope.reset();
|
|
6090
6314
|
cleanup();
|
|
6091
6315
|
});
|
|
6092
6316
|
}];
|
|
@@ -6149,11 +6373,12 @@ function applyOptions(instance) {
|
|
|
6149
6373
|
const opt = computedOptions[key];
|
|
6150
6374
|
const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
|
|
6151
6375
|
if (get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
|
|
6376
|
+
const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
|
|
6377
|
+
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
6378
|
+
};
|
|
6152
6379
|
const c = computed({
|
|
6153
6380
|
get,
|
|
6154
|
-
set
|
|
6155
|
-
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
6156
|
-
}
|
|
6381
|
+
set
|
|
6157
6382
|
});
|
|
6158
6383
|
Object.defineProperty(ctx, key, {
|
|
6159
6384
|
enumerable: true,
|
|
@@ -6213,9 +6438,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
|
|
|
6213
6438
|
for (const key in injectOptions) {
|
|
6214
6439
|
const opt = injectOptions[key];
|
|
6215
6440
|
let injected;
|
|
6216
|
-
if (isObject(opt))
|
|
6217
|
-
|
|
6218
|
-
|
|
6441
|
+
if (isObject(opt)) {
|
|
6442
|
+
if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
|
|
6443
|
+
else injected = inject(opt.from || key);
|
|
6444
|
+
} else injected = inject(opt);
|
|
6219
6445
|
if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
|
|
6220
6446
|
enumerable: true,
|
|
6221
6447
|
configurable: true,
|
|
@@ -6235,7 +6461,8 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6235
6461
|
{
|
|
6236
6462
|
const cur = getCurrentInstance();
|
|
6237
6463
|
const instance = cur && getCurrentScope() === cur.scope ? cur : null;
|
|
6238
|
-
|
|
6464
|
+
const newValue = getter();
|
|
6465
|
+
if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
|
|
6239
6466
|
const baseGetter = getter;
|
|
6240
6467
|
getter = () => {
|
|
6241
6468
|
const val = baseGetter();
|
|
@@ -6248,13 +6475,14 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6248
6475
|
if (isFunction(handler)) watch(getter, handler, options);
|
|
6249
6476
|
else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
|
|
6250
6477
|
} else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
|
|
6251
|
-
else if (isObject(raw))
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6478
|
+
else if (isObject(raw)) {
|
|
6479
|
+
if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
|
|
6480
|
+
else {
|
|
6481
|
+
const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
|
|
6482
|
+
if (isFunction(handler)) watch(getter, handler, extend(raw, options));
|
|
6483
|
+
else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
|
|
6484
|
+
}
|
|
6485
|
+
} else warn$1(`Invalid watch option: "${key}"`, raw);
|
|
6258
6486
|
}
|
|
6259
6487
|
/**
|
|
6260
6488
|
* Resolve merged options and cache it on the component.
|
|
@@ -6268,12 +6496,13 @@ function resolveMergedOptions(instance) {
|
|
|
6268
6496
|
const cached = cache.get(base);
|
|
6269
6497
|
let resolved;
|
|
6270
6498
|
if (cached) resolved = cached;
|
|
6271
|
-
else if (!globalMixins.length && !mixins && !extendsOptions)
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6275
|
-
|
|
6276
|
-
|
|
6499
|
+
else if (!globalMixins.length && !mixins && !extendsOptions) {
|
|
6500
|
+
if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
|
|
6501
|
+
resolved = extend({}, base);
|
|
6502
|
+
resolved.parent = instance.parent && instance.parent.proxy;
|
|
6503
|
+
resolved.propsData = instance.vnode.props;
|
|
6504
|
+
} else resolved = base;
|
|
6505
|
+
} else {
|
|
6277
6506
|
resolved = {};
|
|
6278
6507
|
if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
|
|
6279
6508
|
mergeOptions(resolved, base, optionMergeStrategies);
|
|
@@ -6346,7 +6575,7 @@ function mergeObjectOptions(to, from) {
|
|
|
6346
6575
|
}
|
|
6347
6576
|
function mergeEmitsOrPropsOptions(to, from) {
|
|
6348
6577
|
if (to) {
|
|
6349
|
-
if (isArray(to) && isArray(from)) return [
|
|
6578
|
+
if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
|
|
6350
6579
|
return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
|
|
6351
6580
|
} else return from;
|
|
6352
6581
|
}
|
|
@@ -6407,7 +6636,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
6407
6636
|
if (options.el) return vm.$mount(options.el);
|
|
6408
6637
|
else return vm;
|
|
6409
6638
|
}
|
|
6410
|
-
Vue.version = `2.6.14-compat:3.6.0-rc.
|
|
6639
|
+
Vue.version = `2.6.14-compat:3.6.0-rc.11`;
|
|
6411
6640
|
Vue.config = singletonApp.config;
|
|
6412
6641
|
Vue.use = (plugin, ...options) => {
|
|
6413
6642
|
if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
|
|
@@ -6797,8 +7026,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
|
|
|
6797
7026
|
} else warn$1(`Cannot unmount an app that is not mounted.`);
|
|
6798
7027
|
},
|
|
6799
7028
|
provide(key, value) {
|
|
6800
|
-
if (key in context.provides)
|
|
6801
|
-
|
|
7029
|
+
if (key in context.provides) {
|
|
7030
|
+
if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
|
|
7031
|
+
else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
|
|
7032
|
+
}
|
|
6802
7033
|
context.provides[key] = value;
|
|
6803
7034
|
return app;
|
|
6804
7035
|
},
|
|
@@ -6880,13 +7111,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
|
|
|
6880
7111
|
const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
|
|
6881
7112
|
const res = customRef((track, trigger) => {
|
|
6882
7113
|
let localValue;
|
|
7114
|
+
let prevPropValue = EMPTY_OBJ;
|
|
6883
7115
|
let prevSetValue = EMPTY_OBJ;
|
|
6884
7116
|
let prevEmittedValue;
|
|
6885
7117
|
watchSyncEffect(() => {
|
|
6886
7118
|
const propValue = props[camelizedName];
|
|
6887
|
-
if (hasChanged(
|
|
6888
|
-
|
|
6889
|
-
|
|
7119
|
+
if (hasChanged(prevPropValue, propValue)) {
|
|
7120
|
+
prevPropValue = propValue;
|
|
7121
|
+
if (hasChanged(localValue, propValue)) {
|
|
7122
|
+
localValue = propValue;
|
|
7123
|
+
trigger();
|
|
7124
|
+
}
|
|
6890
7125
|
}
|
|
6891
7126
|
});
|
|
6892
7127
|
return {
|
|
@@ -6948,12 +7183,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
6948
7183
|
if (instance.isUnmounted) return;
|
|
6949
7184
|
{
|
|
6950
7185
|
const { emitsOptions, propsOptions } = instance;
|
|
6951
|
-
if (emitsOptions)
|
|
6952
|
-
if (!
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
if (
|
|
7186
|
+
if (emitsOptions) {
|
|
7187
|
+
if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
|
|
7188
|
+
if (!propsOptions || !propsOptions[0] || !(toHandlerKey(camelize(event)) in propsOptions[0])) warn$1(`Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(camelize(event))}" prop.`);
|
|
7189
|
+
} else {
|
|
7190
|
+
const validator = emitsOptions[event];
|
|
7191
|
+
if (isFunction(validator)) {
|
|
7192
|
+
if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
|
|
7193
|
+
}
|
|
6957
7194
|
}
|
|
6958
7195
|
}
|
|
6959
7196
|
}
|
|
@@ -6963,7 +7200,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
6963
7200
|
const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
|
|
6964
7201
|
if (modifiers) {
|
|
6965
7202
|
if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
|
|
6966
|
-
if (modifiers.number) args =
|
|
7203
|
+
if (modifiers.number) args = args.map(looseToNumber);
|
|
6967
7204
|
}
|
|
6968
7205
|
devtoolsComponentEmit(instance, event, args);
|
|
6969
7206
|
{
|
|
@@ -7105,8 +7342,9 @@ function renderComponentRoot(instance) {
|
|
|
7105
7342
|
root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
|
|
7106
7343
|
}
|
|
7107
7344
|
if (vnode.transition) {
|
|
7108
|
-
|
|
7109
|
-
|
|
7345
|
+
const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
|
|
7346
|
+
if (!isElementRoot(child)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
|
|
7347
|
+
setTransitionHooks(child, vnode.transition);
|
|
7110
7348
|
}
|
|
7111
7349
|
if (setRoot) setRoot(root);
|
|
7112
7350
|
else result = root;
|
|
@@ -7157,18 +7395,21 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
7157
7395
|
for (let i = 0; i < children.length; i++) {
|
|
7158
7396
|
const child = children[i];
|
|
7159
7397
|
if (isVNode(child)) {
|
|
7160
|
-
if (child.type !== Comment || child.children === "v-if")
|
|
7161
|
-
|
|
7162
|
-
|
|
7163
|
-
|
|
7398
|
+
if (child.type !== Comment || child.children === "v-if") {
|
|
7399
|
+
if (singleRoot) return;
|
|
7400
|
+
else {
|
|
7401
|
+
singleRoot = child;
|
|
7402
|
+
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
|
|
7403
|
+
}
|
|
7164
7404
|
}
|
|
7165
7405
|
} else return;
|
|
7166
7406
|
}
|
|
7167
7407
|
return singleRoot;
|
|
7168
7408
|
}
|
|
7409
|
+
const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
|
|
7169
7410
|
const getFunctionalFallthrough = (attrs) => {
|
|
7170
7411
|
let res;
|
|
7171
|
-
for (const key in attrs) if (
|
|
7412
|
+
for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
|
|
7172
7413
|
return res;
|
|
7173
7414
|
};
|
|
7174
7415
|
const filterModelListeners = (attrs, props) => {
|
|
@@ -7304,16 +7545,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7304
7545
|
let key = propsToUpdate[i];
|
|
7305
7546
|
if (isEmitListener(instance.emitsOptions, key)) continue;
|
|
7306
7547
|
const value = rawProps[key];
|
|
7307
|
-
if (options)
|
|
7308
|
-
if (
|
|
7309
|
-
attrs[key]
|
|
7310
|
-
|
|
7548
|
+
if (options) {
|
|
7549
|
+
if (hasOwn(attrs, key)) {
|
|
7550
|
+
if (value !== attrs[key]) {
|
|
7551
|
+
attrs[key] = value;
|
|
7552
|
+
hasAttrsChanged = true;
|
|
7553
|
+
}
|
|
7554
|
+
} else {
|
|
7555
|
+
const camelizedKey = camelize(key);
|
|
7556
|
+
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
7311
7557
|
}
|
|
7312
7558
|
} else {
|
|
7313
|
-
const camelizedKey = camelize(key);
|
|
7314
|
-
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
7315
|
-
}
|
|
7316
|
-
else {
|
|
7317
7559
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7318
7560
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7319
7561
|
if (value !== attrs[key]) {
|
|
@@ -7326,9 +7568,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7326
7568
|
} else {
|
|
7327
7569
|
if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
|
|
7328
7570
|
let kebabKey;
|
|
7329
|
-
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))
|
|
7330
|
-
if (
|
|
7331
|
-
|
|
7571
|
+
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
|
|
7572
|
+
if (options) {
|
|
7573
|
+
if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
|
|
7574
|
+
} else delete props[key];
|
|
7575
|
+
}
|
|
7332
7576
|
if (attrs !== rawCurrentProps) {
|
|
7333
7577
|
for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
|
|
7334
7578
|
delete attrs[key];
|
|
@@ -7349,9 +7593,10 @@ function setFullProps(instance, rawProps, props, attrs) {
|
|
|
7349
7593
|
if (key === "inline-template") continue;
|
|
7350
7594
|
const value = rawProps[key];
|
|
7351
7595
|
let camelKey;
|
|
7352
|
-
if (options && hasOwn(options, camelKey = camelize(key)))
|
|
7353
|
-
|
|
7354
|
-
|
|
7596
|
+
if (options && hasOwn(options, camelKey = camelize(key))) {
|
|
7597
|
+
if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
|
|
7598
|
+
else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
|
|
7599
|
+
} else if (!isEmitListener(instance.emitsOptions, key)) {
|
|
7355
7600
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7356
7601
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7357
7602
|
if (!(key in attrs) || value !== attrs[key]) {
|
|
@@ -7400,7 +7645,7 @@ function baseResolveDefault(factory, instance, key) {
|
|
|
7400
7645
|
const prev = setCurrentInstance(instance);
|
|
7401
7646
|
const props = /* @__PURE__ */ toRaw(instance.props);
|
|
7402
7647
|
value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
|
|
7403
|
-
|
|
7648
|
+
restoreCurrentInstance(prev);
|
|
7404
7649
|
return value;
|
|
7405
7650
|
}
|
|
7406
7651
|
const mixinPropsCache = /* @__PURE__ */ new WeakMap();
|
|
@@ -7517,7 +7762,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
|
|
|
7517
7762
|
}
|
|
7518
7763
|
if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
|
|
7519
7764
|
}
|
|
7520
|
-
const isSimpleType =
|
|
7765
|
+
const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
|
|
7521
7766
|
/**
|
|
7522
7767
|
* dev only
|
|
7523
7768
|
*/
|
|
@@ -7630,12 +7875,13 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7630
7875
|
let deletionComparisonTarget = EMPTY_OBJ;
|
|
7631
7876
|
if (vnode.shapeFlag & 32) {
|
|
7632
7877
|
const type = children._;
|
|
7633
|
-
if (type)
|
|
7634
|
-
|
|
7635
|
-
|
|
7636
|
-
|
|
7637
|
-
|
|
7638
|
-
|
|
7878
|
+
if (type) {
|
|
7879
|
+
if (isHmrUpdating) {
|
|
7880
|
+
assignSlots(slots, children, optimized);
|
|
7881
|
+
trigger(instance, "set", "$slots");
|
|
7882
|
+
} else if (optimized && type === 1) needDeletionCheck = false;
|
|
7883
|
+
else assignSlots(slots, children, optimized);
|
|
7884
|
+
} else {
|
|
7639
7885
|
needDeletionCheck = !children.$stable;
|
|
7640
7886
|
normalizeObjectSlots(children, slots, instance);
|
|
7641
7887
|
}
|
|
@@ -7653,7 +7899,7 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7653
7899
|
let supported;
|
|
7654
7900
|
let perf;
|
|
7655
7901
|
let cachedNow$1 = 0;
|
|
7656
|
-
const p$1 =
|
|
7902
|
+
const p$1 = /*@__PURE__*/ Promise.resolve();
|
|
7657
7903
|
const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
|
|
7658
7904
|
/**
|
|
7659
7905
|
* @internal
|
|
@@ -7734,6 +7980,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7734
7980
|
optimized = false;
|
|
7735
7981
|
n2.dynamicChildren = null;
|
|
7736
7982
|
}
|
|
7983
|
+
if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
|
|
7984
|
+
if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
|
|
7985
|
+
n2.dynamicChildren.hasOnce = true;
|
|
7986
|
+
}
|
|
7737
7987
|
const { type, ref, shapeFlag } = n2;
|
|
7738
7988
|
switch (type) {
|
|
7739
7989
|
case Text:
|
|
@@ -7750,7 +8000,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7750
8000
|
processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
7751
8001
|
break;
|
|
7752
8002
|
case VaporSlot:
|
|
7753
|
-
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
|
|
8003
|
+
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
|
|
7754
8004
|
break;
|
|
7755
8005
|
default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
7756
8006
|
else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
@@ -7869,7 +8119,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7869
8119
|
for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
|
|
7870
8120
|
};
|
|
7871
8121
|
const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
|
|
7872
|
-
for (let i = start; i < children.length; i++)
|
|
8122
|
+
for (let i = start; i < children.length; i++) {
|
|
8123
|
+
const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
|
|
8124
|
+
patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8125
|
+
}
|
|
7873
8126
|
};
|
|
7874
8127
|
const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
7875
8128
|
const el = n2.el = n1.el;
|
|
@@ -7881,6 +8134,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7881
8134
|
let vnodeHook;
|
|
7882
8135
|
parentComponent && toggleRecurse(parentComponent, false);
|
|
7883
8136
|
if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8137
|
+
if (n2.ibu) n2.ibu();
|
|
7884
8138
|
if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
7885
8139
|
parentComponent && toggleRecurse(parentComponent, true);
|
|
7886
8140
|
if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
|
|
@@ -7914,8 +8168,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7914
8168
|
if (n1.children !== n2.children) hostSetElementText(el, n2.children);
|
|
7915
8169
|
}
|
|
7916
8170
|
} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
|
|
7917
|
-
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
|
|
8171
|
+
if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
|
|
7918
8172
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8173
|
+
n2.iu && n2.iu();
|
|
7919
8174
|
dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
7920
8175
|
}, void 0, parentSuspense);
|
|
7921
8176
|
};
|
|
@@ -7923,7 +8178,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7923
8178
|
for (let i = 0; i < newChildren.length; i++) {
|
|
7924
8179
|
const oldVNode = oldChildren[i];
|
|
7925
8180
|
const newVNode = newChildren[i];
|
|
7926
|
-
|
|
8181
|
+
const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
|
|
8182
|
+
patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
|
|
7927
8183
|
}
|
|
7928
8184
|
};
|
|
7929
8185
|
const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
|
|
@@ -7961,41 +8217,15 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7961
8217
|
};
|
|
7962
8218
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
7963
8219
|
n2.slotScopeIds = slotScopeIds;
|
|
7964
|
-
if (n2.type.__vapor)
|
|
7965
|
-
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
|
|
7974
|
-
});
|
|
7975
|
-
if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
7976
|
-
const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
|
|
7977
|
-
if (vnodeMountedHook) {
|
|
7978
|
-
const scopedVNode = n2;
|
|
7979
|
-
queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
|
|
7980
|
-
}
|
|
7981
|
-
}
|
|
7982
|
-
else {
|
|
7983
|
-
const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
|
|
7984
|
-
getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
|
|
7985
|
-
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
7986
|
-
}, () => {
|
|
7987
|
-
const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
|
|
7988
|
-
if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
|
|
7989
|
-
});
|
|
7990
|
-
const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
|
|
7991
|
-
if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
|
|
7992
|
-
n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
7993
|
-
vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
|
|
7994
|
-
}, void 0, parentSuspense);
|
|
7995
|
-
}
|
|
7996
|
-
else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
7997
|
-
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
7998
|
-
else updateComponent(n1, n2, optimized);
|
|
8220
|
+
if (n2.type.__vapor) {
|
|
8221
|
+
if (n1 == null) {
|
|
8222
|
+
if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
|
|
8223
|
+
else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
|
|
8224
|
+
} else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
|
|
8225
|
+
} else if (n1 == null) {
|
|
8226
|
+
if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
8227
|
+
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
8228
|
+
} else updateComponent(n1, n2, optimized);
|
|
7999
8229
|
};
|
|
8000
8230
|
const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
|
|
8001
8231
|
const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
|
|
@@ -8039,16 +8269,18 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8039
8269
|
};
|
|
8040
8270
|
const updateComponent = (n1, n2, optimized) => {
|
|
8041
8271
|
const instance = n2.component = n1.component;
|
|
8042
|
-
if (shouldUpdateComponent(n1, n2, optimized))
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8272
|
+
if (shouldUpdateComponent(n1, n2, optimized)) {
|
|
8273
|
+
if (instance.asyncDep && !instance.asyncResolved) {
|
|
8274
|
+
pushWarningContext(n2);
|
|
8275
|
+
n2.el = n1.el;
|
|
8276
|
+
updateComponentPreRender(instance, n2, optimized);
|
|
8277
|
+
popWarningContext();
|
|
8278
|
+
return;
|
|
8279
|
+
} else {
|
|
8280
|
+
instance.next = n2;
|
|
8281
|
+
instance.effect.run();
|
|
8282
|
+
}
|
|
8047
8283
|
} else {
|
|
8048
|
-
instance.next = n2;
|
|
8049
|
-
instance.effect.run();
|
|
8050
|
-
}
|
|
8051
|
-
else {
|
|
8052
8284
|
n2.el = n1.el;
|
|
8053
8285
|
instance.vnode = n2;
|
|
8054
8286
|
}
|
|
@@ -8151,6 +8383,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8151
8383
|
} else next = vnode;
|
|
8152
8384
|
if (bu) invokeArrayFns(bu);
|
|
8153
8385
|
if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
8386
|
+
if (next.ibu) next.ibu();
|
|
8154
8387
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
|
|
8155
8388
|
toggleRecurse(instance, true);
|
|
8156
8389
|
startMeasure(instance, `render`);
|
|
@@ -8164,7 +8397,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8164
8397
|
next.el = nextTree.el;
|
|
8165
8398
|
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
8166
8399
|
if (u) queuePostRenderEffect(u, void 0, parentSuspense);
|
|
8167
|
-
if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() =>
|
|
8400
|
+
if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
|
|
8401
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
8402
|
+
next.iu && next.iu();
|
|
8403
|
+
}, void 0, parentSuspense);
|
|
8168
8404
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
|
|
8169
8405
|
devtoolsComponentUpdated(instance);
|
|
8170
8406
|
popWarningContext();
|
|
@@ -8205,9 +8441,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8205
8441
|
if (shapeFlag & 8) {
|
|
8206
8442
|
if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
|
|
8207
8443
|
if (c2 !== c1) hostSetElementText(container, c2);
|
|
8208
|
-
} else if (prevShapeFlag & 16)
|
|
8209
|
-
|
|
8210
|
-
|
|
8444
|
+
} else if (prevShapeFlag & 16) {
|
|
8445
|
+
if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8446
|
+
else unmountChildren(c1, parentComponent, parentSuspense, true);
|
|
8447
|
+
} else {
|
|
8211
8448
|
if (prevShapeFlag & 8) hostSetElementText(container, "");
|
|
8212
8449
|
if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8213
8450
|
}
|
|
@@ -8306,15 +8543,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8306
8543
|
const anchorVNode = c2[nextIndex + 1];
|
|
8307
8544
|
const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
|
|
8308
8545
|
if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8309
|
-
else if (moved)
|
|
8310
|
-
|
|
8546
|
+
else if (moved) {
|
|
8547
|
+
if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
|
|
8548
|
+
else j--;
|
|
8549
|
+
}
|
|
8311
8550
|
}
|
|
8312
8551
|
}
|
|
8313
8552
|
};
|
|
8314
8553
|
const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
|
|
8315
8554
|
const { el, type, transition, children, shapeFlag } = vnode;
|
|
8316
8555
|
if (isVaporComponent(type) || type === VaporSlot) {
|
|
8317
|
-
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
|
|
8556
|
+
getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
|
|
8318
8557
|
return;
|
|
8319
8558
|
}
|
|
8320
8559
|
if (shapeFlag & 6) {
|
|
@@ -8339,54 +8578,37 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8339
8578
|
moveStaticNode(vnode, container, anchor);
|
|
8340
8579
|
return;
|
|
8341
8580
|
}
|
|
8342
|
-
if (moveType !== 2 && shapeFlag & 1 && transition)
|
|
8343
|
-
|
|
8344
|
-
|
|
8345
|
-
const remove = () => {
|
|
8581
|
+
if (moveType !== 2 && shapeFlag & 1 && transition) {
|
|
8582
|
+
if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
|
|
8583
|
+
else performTransitionLeave(el, transition, () => {
|
|
8346
8584
|
if (vnode.ctx.isUnmounted) hostRemove(el);
|
|
8347
8585
|
else hostInsert(el, container, anchor);
|
|
8348
|
-
};
|
|
8349
|
-
|
|
8350
|
-
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
8351
|
-
if (el._isLeaving) el[leaveCbKey](true);
|
|
8352
|
-
if (transition.persisted && !wasLeaving) remove();
|
|
8353
|
-
else leave(el, () => {
|
|
8354
|
-
remove();
|
|
8355
|
-
afterLeave && afterLeave();
|
|
8356
|
-
});
|
|
8357
|
-
};
|
|
8358
|
-
if (delayLeave) delayLeave(el, remove, performLeave);
|
|
8359
|
-
else performLeave();
|
|
8360
|
-
}
|
|
8361
|
-
else hostInsert(el, container, anchor);
|
|
8586
|
+
}, true, true);
|
|
8587
|
+
} else hostInsert(el, container, anchor);
|
|
8362
8588
|
};
|
|
8363
8589
|
const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
|
|
8364
8590
|
const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
|
|
8365
|
-
if (patchFlag === -2) optimized = false;
|
|
8591
|
+
if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
|
|
8366
8592
|
if (ref != null) {
|
|
8367
8593
|
const prevSub = setActiveSub();
|
|
8368
8594
|
setRef(ref, null, parentSuspense, vnode, true);
|
|
8369
8595
|
setActiveSub(prevSub);
|
|
8370
8596
|
}
|
|
8371
|
-
if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
|
|
8597
|
+
if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
|
|
8372
8598
|
if (shapeFlag & 256) {
|
|
8373
|
-
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
|
|
8599
|
+
if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
|
|
8374
8600
|
else parentComponent.ctx.deactivate(vnode);
|
|
8375
8601
|
return;
|
|
8376
8602
|
}
|
|
8603
|
+
if (shapeFlag & 6 && isVaporComponent(type)) {
|
|
8604
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
8605
|
+
return;
|
|
8606
|
+
}
|
|
8377
8607
|
const shouldInvokeDirs = shapeFlag & 1 && dirs;
|
|
8378
8608
|
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
8379
8609
|
let vnodeHook;
|
|
8380
8610
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8381
|
-
if (shapeFlag & 6)
|
|
8382
|
-
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
8383
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
8384
|
-
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
|
|
8385
|
-
dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
|
|
8386
|
-
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8387
|
-
}, void 0, parentSuspense);
|
|
8388
|
-
return;
|
|
8389
|
-
} else unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
8611
|
+
if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
8390
8612
|
else {
|
|
8391
8613
|
if (shapeFlag & 128) {
|
|
8392
8614
|
vnode.suspense.unmount(parentSuspense, doRemove);
|
|
@@ -8397,7 +8619,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8397
8619
|
else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
|
|
8398
8620
|
else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
|
|
8399
8621
|
if (type === VaporSlot) {
|
|
8400
|
-
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
|
|
8622
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
8401
8623
|
return;
|
|
8402
8624
|
}
|
|
8403
8625
|
if (doRemove) remove(vnode);
|
|
@@ -8421,6 +8643,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8421
8643
|
}
|
|
8422
8644
|
if (type === Static) {
|
|
8423
8645
|
removeStaticNode(vnode);
|
|
8646
|
+
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
8424
8647
|
return;
|
|
8425
8648
|
}
|
|
8426
8649
|
if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
|
|
@@ -8446,7 +8669,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8446
8669
|
if (effect) {
|
|
8447
8670
|
effect.stop();
|
|
8448
8671
|
unmount(subTree, instance, parentSuspense, doRemove);
|
|
8449
|
-
} else if (
|
|
8672
|
+
} else if (instance.vnode.el && subTree) {
|
|
8673
|
+
subTree.transition = instance.vnode.transition;
|
|
8674
|
+
unmount(subTree, instance, parentSuspense, doRemove);
|
|
8675
|
+
}
|
|
8450
8676
|
if (um) queuePostRenderEffect(um, void 0, parentSuspense);
|
|
8451
8677
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
|
|
8452
8678
|
queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
|
|
@@ -8521,12 +8747,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
|
|
|
8521
8747
|
return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
|
|
8522
8748
|
}
|
|
8523
8749
|
function toggleRecurse({ effect, job, vapor }, allowed) {
|
|
8524
|
-
if (!vapor)
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8750
|
+
if (!vapor) {
|
|
8751
|
+
if (allowed) {
|
|
8752
|
+
effect.flags |= 128;
|
|
8753
|
+
job.flags |= 2;
|
|
8754
|
+
} else {
|
|
8755
|
+
effect.flags &= -129;
|
|
8756
|
+
job.flags &= -3;
|
|
8757
|
+
}
|
|
8530
8758
|
}
|
|
8531
8759
|
}
|
|
8532
8760
|
function needTransition(parentSuspense, transition) {
|
|
@@ -8566,8 +8794,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
8566
8794
|
}
|
|
8567
8795
|
function locateNonHydratedAsyncRoot(instance) {
|
|
8568
8796
|
const subComponent = instance.subTree && instance.subTree.component;
|
|
8569
|
-
if (subComponent)
|
|
8570
|
-
|
|
8797
|
+
if (subComponent) {
|
|
8798
|
+
if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
|
|
8799
|
+
else return locateNonHydratedAsyncRoot(subComponent);
|
|
8800
|
+
}
|
|
8571
8801
|
}
|
|
8572
8802
|
function invalidateMount(hooks) {
|
|
8573
8803
|
if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
|
|
@@ -8586,13 +8816,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
|
|
|
8586
8816
|
function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
|
|
8587
8817
|
const performRemove = () => {
|
|
8588
8818
|
remove();
|
|
8589
|
-
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
8819
|
+
if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
|
|
8590
8820
|
};
|
|
8591
8821
|
if (force || isElement && transition && !transition.persisted) {
|
|
8592
8822
|
const { leave, delayLeave } = transition;
|
|
8593
8823
|
const performLeave = () => {
|
|
8824
|
+
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
8594
8825
|
if (el._isLeaving && force) el[leaveCbKey](true);
|
|
8595
|
-
|
|
8826
|
+
if (force && transition.persisted && !wasLeaving) remove();
|
|
8827
|
+
else leave(el, performRemove);
|
|
8596
8828
|
};
|
|
8597
8829
|
if (delayLeave) delayLeave(el, performRemove, performLeave);
|
|
8598
8830
|
else performLeave();
|
|
@@ -8611,7 +8843,7 @@ function isVaporComponent(type) {
|
|
|
8611
8843
|
/**
|
|
8612
8844
|
* shared between vdom and vapor
|
|
8613
8845
|
*/
|
|
8614
|
-
function getInheritedScopeIds(vnode, parentComponent) {
|
|
8846
|
+
function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
|
|
8615
8847
|
const inheritedScopeIds = [];
|
|
8616
8848
|
let currentParent = parentComponent;
|
|
8617
8849
|
let currentVNode = vnode;
|
|
@@ -8627,6 +8859,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
|
|
|
8627
8859
|
currentParent = currentParent.parent;
|
|
8628
8860
|
} else break;
|
|
8629
8861
|
}
|
|
8862
|
+
const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
|
|
8863
|
+
if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
|
|
8630
8864
|
return inheritedScopeIds;
|
|
8631
8865
|
}
|
|
8632
8866
|
function resolveAsyncComponentPlaceholder(anchorVnode) {
|
|
@@ -8645,7 +8879,7 @@ const Suspense = {
|
|
|
8645
8879
|
process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
|
|
8646
8880
|
if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
|
|
8647
8881
|
else {
|
|
8648
|
-
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
|
|
8882
|
+
if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
|
|
8649
8883
|
n2.suspense = n1.suspense;
|
|
8650
8884
|
n2.suspense.vnode = n2;
|
|
8651
8885
|
n2.el = n1.el;
|
|
@@ -8683,10 +8917,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8683
8917
|
if (pendingBranch) {
|
|
8684
8918
|
suspense.pendingBranch = newBranch;
|
|
8685
8919
|
if (isSameVNodeType(pendingBranch, newBranch)) {
|
|
8686
|
-
|
|
8920
|
+
suspense.deps++;
|
|
8921
|
+
patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8922
|
+
suspense.deps--;
|
|
8687
8923
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8688
8924
|
else if (isInFallback) {
|
|
8689
|
-
if (!isHydrating) {
|
|
8925
|
+
if (!isHydrating && !suspense.isFallbackMountPending) {
|
|
8690
8926
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8691
8927
|
setActiveBranch(suspense, newFallback);
|
|
8692
8928
|
}
|
|
@@ -8698,12 +8934,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8698
8934
|
suspense.activeBranch = pendingBranch;
|
|
8699
8935
|
} else unmount(pendingBranch, parentComponent, suspense);
|
|
8700
8936
|
suspense.deps = 0;
|
|
8937
|
+
for (let i = 0; i < suspense.effects.length; i++) {
|
|
8938
|
+
const effect = suspense.effects[i];
|
|
8939
|
+
if (effect.flags & 8) queuePostFlushCb(effect);
|
|
8940
|
+
}
|
|
8701
8941
|
suspense.effects.length = 0;
|
|
8702
8942
|
suspense.hiddenContainer = createElement("div");
|
|
8703
8943
|
if (isInFallback) {
|
|
8704
8944
|
patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8705
8945
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8706
|
-
else {
|
|
8946
|
+
else if (!suspense.isFallbackMountPending) {
|
|
8707
8947
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8708
8948
|
setActiveBranch(suspense, newFallback);
|
|
8709
8949
|
}
|
|
@@ -8805,7 +9045,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8805
9045
|
let hasUnresolvedAncestor = false;
|
|
8806
9046
|
while (parent) {
|
|
8807
9047
|
if (parent.pendingBranch) {
|
|
8808
|
-
parent.effects.push(
|
|
9048
|
+
for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
|
|
8809
9049
|
hasUnresolvedAncestor = true;
|
|
8810
9050
|
break;
|
|
8811
9051
|
}
|
|
@@ -8815,6 +9055,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8815
9055
|
suspense.effects = [];
|
|
8816
9056
|
if (isSuspensible) {
|
|
8817
9057
|
if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
|
|
9058
|
+
parentSuspenseId = void 0;
|
|
8818
9059
|
parentSuspense.deps--;
|
|
8819
9060
|
if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
|
|
8820
9061
|
}
|
|
@@ -8829,8 +9070,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8829
9070
|
const mountFallback = () => {
|
|
8830
9071
|
suspense.isFallbackMountPending = false;
|
|
8831
9072
|
if (!suspense.isInFallback) return;
|
|
8832
|
-
|
|
8833
|
-
|
|
9073
|
+
const latestFallback = suspense.vnode.ssFallback;
|
|
9074
|
+
patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
9075
|
+
setActiveBranch(suspense, latestFallback);
|
|
8834
9076
|
};
|
|
8835
9077
|
const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
|
|
8836
9078
|
if (delayEnter) {
|
|
@@ -8851,11 +9093,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8851
9093
|
registerDep(instance, onResolve) {
|
|
8852
9094
|
const isInPendingSuspense = !!suspense.pendingBranch;
|
|
8853
9095
|
if (isInPendingSuspense) suspense.deps++;
|
|
9096
|
+
const hydratedEl = instance.vnode && instance.vnode.el;
|
|
8854
9097
|
instance.asyncDep.catch((err) => {
|
|
8855
9098
|
handleError(err, instance, 0);
|
|
8856
9099
|
}).then((asyncSetupResult) => {
|
|
8857
9100
|
if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
|
|
8858
9101
|
setCurrentInstance(null, void 0);
|
|
9102
|
+
if (hydratedEl && !instance.scope.active) {
|
|
9103
|
+
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
9104
|
+
return;
|
|
9105
|
+
}
|
|
8859
9106
|
instance.asyncResolved = true;
|
|
8860
9107
|
onResolve(asyncSetupResult);
|
|
8861
9108
|
if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
|
|
@@ -8906,9 +9153,10 @@ function normalizeSuspenseSlot(s) {
|
|
|
8906
9153
|
return s;
|
|
8907
9154
|
}
|
|
8908
9155
|
function queueEffectWithSuspense(fn, id, suspense) {
|
|
8909
|
-
if (suspense && suspense.pendingBranch)
|
|
8910
|
-
|
|
8911
|
-
|
|
9156
|
+
if (suspense && suspense.pendingBranch) {
|
|
9157
|
+
if (isArray(fn)) suspense.effects.push(...fn);
|
|
9158
|
+
else suspense.effects.push(fn);
|
|
9159
|
+
} else queuePostFlushCb(fn, id);
|
|
8912
9160
|
}
|
|
8913
9161
|
function setActiveBranch(suspense, branch) {
|
|
8914
9162
|
suspense.activeBranch = branch;
|
|
@@ -9115,11 +9363,26 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
|
|
|
9115
9363
|
if (shapeFlag & 128) type.normalize(vnode);
|
|
9116
9364
|
} else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
|
|
9117
9365
|
if (vnode.key !== vnode.key) warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
|
|
9366
|
+
if (props && vnode.shapeFlag & 1) {
|
|
9367
|
+
const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
|
|
9368
|
+
if (overwritingProp && hasContentChildren(vnode.children)) warn$1(`The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`);
|
|
9369
|
+
}
|
|
9118
9370
|
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
|
|
9119
9371
|
convertLegacyVModelProps(vnode);
|
|
9120
9372
|
defineLegacyVNodeProperties(vnode);
|
|
9121
9373
|
return vnode;
|
|
9122
9374
|
}
|
|
9375
|
+
/**
|
|
9376
|
+
* dev only
|
|
9377
|
+
* Whether children would actually render something. Empty text and empty
|
|
9378
|
+
* arrays are ignored, mirroring the compiler's `node.children.length` check
|
|
9379
|
+
* for `v-html` / `v-text`.
|
|
9380
|
+
*/
|
|
9381
|
+
function hasContentChildren(children) {
|
|
9382
|
+
if (isString(children)) return children !== "";
|
|
9383
|
+
if (isArray(children)) return children.length > 0;
|
|
9384
|
+
return false;
|
|
9385
|
+
}
|
|
9123
9386
|
const createVNode = createVNodeWithArgsTransform;
|
|
9124
9387
|
function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
|
|
9125
9388
|
if (!type || type === NULL_DYNAMIC_COMPONENT) {
|
|
@@ -9129,8 +9392,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
|
|
|
9129
9392
|
if (isVNode(type)) {
|
|
9130
9393
|
const cloned = cloneVNode(type, props, true);
|
|
9131
9394
|
if (children) normalizeChildren(cloned, children);
|
|
9132
|
-
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock)
|
|
9133
|
-
|
|
9395
|
+
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
|
|
9396
|
+
if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
|
|
9397
|
+
else currentBlock.push(cloned);
|
|
9398
|
+
}
|
|
9134
9399
|
cloned.patchFlag = -2;
|
|
9135
9400
|
return cloned;
|
|
9136
9401
|
}
|
|
@@ -9191,7 +9456,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
|
|
|
9191
9456
|
ce: vnode.ce,
|
|
9192
9457
|
vi: vnode.vi,
|
|
9193
9458
|
vs: cloneVaporSlotMeta(vnode),
|
|
9194
|
-
vb: vnode.vb
|
|
9459
|
+
vb: vnode.vb,
|
|
9460
|
+
ibu: vnode.ibu,
|
|
9461
|
+
iu: vnode.iu,
|
|
9462
|
+
cacheIndex: vnode.cacheIndex
|
|
9195
9463
|
};
|
|
9196
9464
|
if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
|
|
9197
9465
|
defineLegacyVNodeProperties(cloned);
|
|
@@ -9202,8 +9470,7 @@ function cloneVaporSlotMeta(vnode) {
|
|
|
9202
9470
|
if (!vaporSlot) return vaporSlot;
|
|
9203
9471
|
const cloned = {
|
|
9204
9472
|
slot: vaporSlot.slot,
|
|
9205
|
-
|
|
9206
|
-
outletFallback: vaporSlot.outletFallback
|
|
9473
|
+
outlets: vaporSlot.outlets
|
|
9207
9474
|
};
|
|
9208
9475
|
if (vnode.el) {
|
|
9209
9476
|
cloned.state = vaporSlot.state;
|
|
@@ -9255,25 +9522,28 @@ function normalizeChildren(vnode, children) {
|
|
|
9255
9522
|
const { shapeFlag } = vnode;
|
|
9256
9523
|
if (children == null) children = null;
|
|
9257
9524
|
else if (isArray(children)) type = 16;
|
|
9258
|
-
else if (typeof children === "object")
|
|
9259
|
-
|
|
9260
|
-
|
|
9261
|
-
|
|
9262
|
-
|
|
9263
|
-
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9272
|
-
|
|
9273
|
-
|
|
9525
|
+
else if (typeof children === "object") {
|
|
9526
|
+
if (shapeFlag & 65) {
|
|
9527
|
+
const slot = children.default;
|
|
9528
|
+
if (slot) {
|
|
9529
|
+
slot._c && (slot._d = false);
|
|
9530
|
+
normalizeChildren(vnode, slot());
|
|
9531
|
+
slot._c && (slot._d = true);
|
|
9532
|
+
}
|
|
9533
|
+
return;
|
|
9534
|
+
} else {
|
|
9535
|
+
type = 32;
|
|
9536
|
+
const slotFlag = children._;
|
|
9537
|
+
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
9538
|
+
else if (slotFlag === 3 && currentRenderingInstance) {
|
|
9539
|
+
if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
9540
|
+
else {
|
|
9541
|
+
children._ = 2;
|
|
9542
|
+
vnode.patchFlag |= 1024;
|
|
9543
|
+
}
|
|
9544
|
+
}
|
|
9274
9545
|
}
|
|
9275
|
-
}
|
|
9276
|
-
else if (isFunction(children)) {
|
|
9546
|
+
} else if (isFunction(children)) {
|
|
9277
9547
|
if (shapeFlag & 65) {
|
|
9278
9548
|
normalizeChildren(vnode, { default: children });
|
|
9279
9549
|
return;
|
|
@@ -9350,6 +9620,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
|
|
|
9350
9620
|
simpleSetCurrentInstance(instance);
|
|
9351
9621
|
}
|
|
9352
9622
|
};
|
|
9623
|
+
/**
|
|
9624
|
+
* Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
|
|
9625
|
+
* `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
|
|
9626
|
+
* verbatim instead of re-triggering the `instance.scope` default.
|
|
9627
|
+
* @internal
|
|
9628
|
+
*/
|
|
9629
|
+
const restoreCurrentInstance = (prev) => {
|
|
9630
|
+
setCurrentScope(prev[1]);
|
|
9631
|
+
simpleSetCurrentInstance(prev[0]);
|
|
9632
|
+
};
|
|
9353
9633
|
const internalOptions = [
|
|
9354
9634
|
"ce",
|
|
9355
9635
|
"type",
|
|
@@ -9381,7 +9661,7 @@ const useInstanceOption = (key, silent = false) => {
|
|
|
9381
9661
|
};
|
|
9382
9662
|
//#endregion
|
|
9383
9663
|
//#region packages/runtime-core/src/component.ts
|
|
9384
|
-
const emptyAppContext =
|
|
9664
|
+
const emptyAppContext = /*@__PURE__*/ createAppContext();
|
|
9385
9665
|
let uid = 0;
|
|
9386
9666
|
function createComponentInstance(vnode, parent, suspense) {
|
|
9387
9667
|
const type = vnode.type;
|
|
@@ -9501,7 +9781,7 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9501
9781
|
const setupResult = callWithErrorHandling(setup, instance, 0, [/* @__PURE__ */ shallowReadonly(instance.props), setupContext]);
|
|
9502
9782
|
const isAsyncSetup = isPromise(setupResult);
|
|
9503
9783
|
setActiveSub(prevSub);
|
|
9504
|
-
|
|
9784
|
+
restoreCurrentInstance(prev);
|
|
9505
9785
|
if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
|
|
9506
9786
|
if (isAsyncSetup) {
|
|
9507
9787
|
const unsetCurrentInstance = () => {
|
|
@@ -9509,7 +9789,12 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9509
9789
|
};
|
|
9510
9790
|
setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
|
|
9511
9791
|
if (isSSR) return setupResult.then((resolvedResult) => {
|
|
9512
|
-
|
|
9792
|
+
setInSSRSetupState(true);
|
|
9793
|
+
try {
|
|
9794
|
+
handleSetupResult(instance, resolvedResult, isSSR);
|
|
9795
|
+
} finally {
|
|
9796
|
+
setInSSRSetupState(false);
|
|
9797
|
+
}
|
|
9513
9798
|
}).catch((e) => {
|
|
9514
9799
|
handleError(e, instance, 0);
|
|
9515
9800
|
});
|
|
@@ -9521,9 +9806,10 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9521
9806
|
} else finishComponentSetup(instance, isSSR);
|
|
9522
9807
|
}
|
|
9523
9808
|
function handleSetupResult(instance, setupResult, isSSR) {
|
|
9524
|
-
if (isFunction(setupResult))
|
|
9525
|
-
|
|
9526
|
-
|
|
9809
|
+
if (isFunction(setupResult)) {
|
|
9810
|
+
if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
|
|
9811
|
+
else instance.render = setupResult;
|
|
9812
|
+
} else if (isObject(setupResult)) {
|
|
9527
9813
|
if (isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
|
|
9528
9814
|
instance.devtoolsRawSetupState = setupResult;
|
|
9529
9815
|
instance.setupState = proxyRefs(setupResult);
|
|
@@ -9575,13 +9861,15 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
9575
9861
|
applyOptions(instance);
|
|
9576
9862
|
} finally {
|
|
9577
9863
|
setActiveSub(prevSub);
|
|
9578
|
-
|
|
9864
|
+
restoreCurrentInstance(prevInstance);
|
|
9579
9865
|
}
|
|
9580
9866
|
}
|
|
9581
|
-
if (!Component.render && instance.render === NOOP && !isSSR)
|
|
9867
|
+
if (!Component.render && instance.render === NOOP && !isSSR) {
|
|
9868
|
+
if (!compile$1 && Component.template)
|
|
9582
9869
|
/* v8 ignore start */
|
|
9583
|
-
|
|
9584
|
-
|
|
9870
|
+
warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
|
|
9871
|
+
else warn$1(`Component is missing template or render function: `, Component);
|
|
9872
|
+
}
|
|
9585
9873
|
}
|
|
9586
9874
|
const attrsProxyHandlers = {
|
|
9587
9875
|
get(target, key) {
|
|
@@ -9644,14 +9932,13 @@ function getComponentPublicInstance(instance) {
|
|
|
9644
9932
|
if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
|
|
9645
9933
|
get(target, key) {
|
|
9646
9934
|
if (key in target) return target[key];
|
|
9647
|
-
else {
|
|
9935
|
+
else if (!instance.vapor) {
|
|
9648
9936
|
const publicPropertiesMap = getPublicPropertiesMap();
|
|
9649
9937
|
if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
|
|
9650
9938
|
}
|
|
9651
9939
|
},
|
|
9652
9940
|
has(target, key) {
|
|
9653
|
-
|
|
9654
|
-
return key in target || key in publicPropertiesMap;
|
|
9941
|
+
return key in target || !instance.vapor && key in getPublicPropertiesMap();
|
|
9655
9942
|
}
|
|
9656
9943
|
}));
|
|
9657
9944
|
else return instance.proxy;
|
|
@@ -9689,11 +9976,12 @@ function h(type, propsOrChildren, children) {
|
|
|
9689
9976
|
try {
|
|
9690
9977
|
setBlockTracking(-1);
|
|
9691
9978
|
const l = arguments.length;
|
|
9692
|
-
if (l === 2)
|
|
9693
|
-
if (
|
|
9694
|
-
|
|
9695
|
-
|
|
9696
|
-
|
|
9979
|
+
if (l === 2) {
|
|
9980
|
+
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
|
|
9981
|
+
if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
|
|
9982
|
+
return createVNode(type, propsOrChildren);
|
|
9983
|
+
} else return createVNode(type, null, propsOrChildren);
|
|
9984
|
+
} else {
|
|
9697
9985
|
if (l > 3) children = Array.prototype.slice.call(arguments, 2);
|
|
9698
9986
|
else if (l === 3 && isVNode(children)) children = [children];
|
|
9699
9987
|
return createVNode(type, propsOrChildren, children);
|
|
@@ -9885,7 +10173,7 @@ function isMemoSame(cached, memo) {
|
|
|
9885
10173
|
}
|
|
9886
10174
|
//#endregion
|
|
9887
10175
|
//#region packages/runtime-core/src/index.ts
|
|
9888
|
-
const version = "3.6.0-rc.
|
|
10176
|
+
const version = "3.6.0-rc.11";
|
|
9889
10177
|
const warn = warn$1;
|
|
9890
10178
|
/**
|
|
9891
10179
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -9908,7 +10196,10 @@ const ssrUtils = {
|
|
|
9908
10196
|
getComponentPublicInstance,
|
|
9909
10197
|
ensureValidVNode,
|
|
9910
10198
|
pushWarningContext,
|
|
9911
|
-
popWarningContext
|
|
10199
|
+
popWarningContext,
|
|
10200
|
+
VaporSlot,
|
|
10201
|
+
rawVaporSlotKey,
|
|
10202
|
+
invokeSlotFallback
|
|
9912
10203
|
};
|
|
9913
10204
|
/**
|
|
9914
10205
|
* @internal only exposed in compat builds
|
|
@@ -9930,7 +10221,7 @@ const DeprecationTypes = DeprecationTypes$1;
|
|
|
9930
10221
|
let policy = void 0;
|
|
9931
10222
|
const tt = typeof window !== "undefined" && window.trustedTypes;
|
|
9932
10223
|
if (tt) try {
|
|
9933
|
-
policy =
|
|
10224
|
+
policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
|
|
9934
10225
|
} catch (e) {
|
|
9935
10226
|
warn(`Error creating trusted types policy: ${e}`);
|
|
9936
10227
|
}
|
|
@@ -9938,7 +10229,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
|
|
|
9938
10229
|
const svgNS = "http://www.w3.org/2000/svg";
|
|
9939
10230
|
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
|
|
9940
10231
|
const doc = typeof document !== "undefined" ? document : null;
|
|
9941
|
-
const templateContainer = doc &&
|
|
10232
|
+
const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
|
|
9942
10233
|
const nodeOps = {
|
|
9943
10234
|
insert: (child, parent, anchor) => {
|
|
9944
10235
|
parent.insertBefore(child, anchor || null);
|
|
@@ -10012,7 +10303,7 @@ const DOMTransitionPropsValidators = {
|
|
|
10012
10303
|
leaveActiveClass: String,
|
|
10013
10304
|
leaveToClass: String
|
|
10014
10305
|
};
|
|
10015
|
-
const TransitionPropsValidators =
|
|
10306
|
+
const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
|
|
10016
10307
|
/**
|
|
10017
10308
|
* Wrap logic that attaches extra properties to Transition in a function
|
|
10018
10309
|
* so that it can be annotated as pure
|
|
@@ -10027,7 +10318,7 @@ const decorate$1 = (t) => {
|
|
|
10027
10318
|
* DOM Transition is a higher-order-component based on the platform-agnostic
|
|
10028
10319
|
* base Transition component, with DOM-specific logic.
|
|
10029
10320
|
*/
|
|
10030
|
-
const Transition =
|
|
10321
|
+
const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
|
|
10031
10322
|
/**
|
|
10032
10323
|
* #3227 Incoming hooks may be merged into arrays when wrapping Transition
|
|
10033
10324
|
* with custom HOCs.
|
|
@@ -10267,14 +10558,15 @@ const vShow = {
|
|
|
10267
10558
|
},
|
|
10268
10559
|
updated(el, { value, oldValue }, { transition }) {
|
|
10269
10560
|
if (!value === !oldValue) return;
|
|
10270
|
-
if (transition)
|
|
10271
|
-
|
|
10272
|
-
|
|
10273
|
-
|
|
10274
|
-
|
|
10275
|
-
|
|
10276
|
-
|
|
10277
|
-
|
|
10561
|
+
if (transition) {
|
|
10562
|
+
if (value) {
|
|
10563
|
+
transition.beforeEnter(el);
|
|
10564
|
+
setDisplay(el, true);
|
|
10565
|
+
transition.enter(el);
|
|
10566
|
+
} else transition.leave(el, () => {
|
|
10567
|
+
setDisplay(el, false);
|
|
10568
|
+
});
|
|
10569
|
+
} else setDisplay(el, value);
|
|
10278
10570
|
},
|
|
10279
10571
|
beforeUnmount(el, { value }) {
|
|
10280
10572
|
setDisplay(el, value);
|
|
@@ -10305,11 +10597,13 @@ function patchStyle(el, prev, next) {
|
|
|
10305
10597
|
const isCssString = isString(next);
|
|
10306
10598
|
let hasControlledDisplay = false;
|
|
10307
10599
|
if (next && !isCssString) {
|
|
10308
|
-
if (prev)
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10600
|
+
if (prev) {
|
|
10601
|
+
if (!isString(prev)) {
|
|
10602
|
+
for (const key in prev) if (next[key] == null) setStyle(style, key, "");
|
|
10603
|
+
} else for (const prevStyle of prev.split(";")) {
|
|
10604
|
+
const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
|
|
10605
|
+
if (next[key] == null) setStyle(style, key, "");
|
|
10606
|
+
}
|
|
10313
10607
|
}
|
|
10314
10608
|
for (const key in next) {
|
|
10315
10609
|
if (key === "display") hasControlledDisplay = true;
|
|
@@ -10325,7 +10619,11 @@ function patchStyle(el, prev, next) {
|
|
|
10325
10619
|
style.cssText = next;
|
|
10326
10620
|
hasControlledDisplay = displayRE.test(next);
|
|
10327
10621
|
}
|
|
10328
|
-
} else if (prev)
|
|
10622
|
+
} else if (prev) {
|
|
10623
|
+
const cssVarText = style[CSS_VAR_TEXT];
|
|
10624
|
+
if (cssVarText) style.cssText = cssVarText;
|
|
10625
|
+
else el.removeAttribute("style");
|
|
10626
|
+
}
|
|
10329
10627
|
if (vShowOriginalDisplay in el) {
|
|
10330
10628
|
el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
|
|
10331
10629
|
if (el[vShowHidden]) style.display = "none";
|
|
@@ -10338,8 +10636,10 @@ function setStyle(style, name, rawVal) {
|
|
|
10338
10636
|
else {
|
|
10339
10637
|
const val = rawVal == null ? "" : String(rawVal);
|
|
10340
10638
|
if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
|
|
10341
|
-
if (name.startsWith("--"))
|
|
10342
|
-
|
|
10639
|
+
if (name.startsWith("--")) {
|
|
10640
|
+
if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
|
|
10641
|
+
else style.setProperty(name, val);
|
|
10642
|
+
} else {
|
|
10343
10643
|
const prefixed = autoPrefix(style, name);
|
|
10344
10644
|
if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
|
|
10345
10645
|
else style[prefixed] = val;
|
|
@@ -10376,15 +10676,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
|
|
|
10376
10676
|
//#region packages/runtime-dom/src/modules/attrs.ts
|
|
10377
10677
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
10378
10678
|
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
|
|
10379
|
-
if (isSVG && key.startsWith("xlink:"))
|
|
10380
|
-
|
|
10381
|
-
|
|
10679
|
+
if (isSVG && key.startsWith("xlink:")) {
|
|
10680
|
+
if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
|
|
10681
|
+
else el.setAttributeNS(xlinkNS, key, value);
|
|
10682
|
+
} else {
|
|
10382
10683
|
if (compatCoerceAttr(el, key, value, instance)) return;
|
|
10383
10684
|
if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
|
|
10384
10685
|
else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
|
|
10385
10686
|
}
|
|
10386
10687
|
}
|
|
10387
|
-
const isEnumeratedAttr =
|
|
10688
|
+
const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
|
|
10388
10689
|
function compatCoerceAttr(el, key, value, instance = null) {
|
|
10389
10690
|
if (isEnumeratedAttr(key)) {
|
|
10390
10691
|
const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
|
|
@@ -10476,7 +10777,7 @@ function parseEventName(name) {
|
|
|
10476
10777
|
return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
|
|
10477
10778
|
}
|
|
10478
10779
|
let cachedNow = 0;
|
|
10479
|
-
const p =
|
|
10780
|
+
const p = /*@__PURE__*/ Promise.resolve();
|
|
10480
10781
|
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
|
|
10481
10782
|
function createInvoker(initialValue, instance) {
|
|
10482
10783
|
const invoker = (e) => {
|
|
@@ -10544,7 +10845,7 @@ function shouldSetAsPropForVueCE(el, key) {
|
|
|
10544
10845
|
//#endregion
|
|
10545
10846
|
//#region packages/runtime-dom/src/apiCustomElement.ts
|
|
10546
10847
|
const REMOVAL = {};
|
|
10547
|
-
|
|
10848
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
10548
10849
|
function defineCustomElement(options, extraOptions, _createApp) {
|
|
10549
10850
|
let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
|
|
10550
10851
|
if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
|
|
@@ -10593,12 +10894,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10593
10894
|
this._parent = parent;
|
|
10594
10895
|
break;
|
|
10595
10896
|
}
|
|
10596
|
-
if (!this._instance)
|
|
10597
|
-
|
|
10598
|
-
this._pendingResolve =
|
|
10599
|
-
|
|
10600
|
-
|
|
10601
|
-
|
|
10897
|
+
if (!this._instance) {
|
|
10898
|
+
if (this._resolved) this._mountComponent(this._def);
|
|
10899
|
+
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
10900
|
+
this._pendingResolve = void 0;
|
|
10901
|
+
if (this.isConnected) return this._resolveDef();
|
|
10902
|
+
});
|
|
10903
|
+
else this._resolveDef();
|
|
10904
|
+
}
|
|
10602
10905
|
}
|
|
10603
10906
|
disconnectedCallback() {
|
|
10604
10907
|
this._connected = false;
|
|
@@ -10632,7 +10935,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10632
10935
|
* resolve inner component definition (handle possible async component)
|
|
10633
10936
|
*/
|
|
10634
10937
|
_resolveDef() {
|
|
10635
|
-
if (this._pendingResolve) return;
|
|
10938
|
+
if (this._pendingResolve) return this._pendingResolve;
|
|
10636
10939
|
for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
|
|
10637
10940
|
this._ob = new MutationObserver(this._processMutations.bind(this));
|
|
10638
10941
|
this._ob.observe(this, { attributes: true });
|
|
@@ -10662,6 +10965,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10662
10965
|
this._def = def;
|
|
10663
10966
|
resolve(def);
|
|
10664
10967
|
});
|
|
10968
|
+
return this._pendingResolve;
|
|
10665
10969
|
} else resolve(this._def);
|
|
10666
10970
|
}
|
|
10667
10971
|
_mountComponent(def) {
|
|
@@ -10700,14 +11004,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10700
11004
|
const { props } = def;
|
|
10701
11005
|
const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
|
|
10702
11006
|
for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
|
|
10703
|
-
for (const key of declaredPropKeys.map(camelize))
|
|
10704
|
-
|
|
10705
|
-
|
|
10706
|
-
|
|
10707
|
-
|
|
10708
|
-
|
|
10709
|
-
|
|
10710
|
-
|
|
11007
|
+
for (const key of declaredPropKeys.map(camelize)) {
|
|
11008
|
+
if (key in Object.getPrototypeOf(this)) warn(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
|
|
11009
|
+
Object.defineProperty(this, key, {
|
|
11010
|
+
get() {
|
|
11011
|
+
return this._getProp(key);
|
|
11012
|
+
},
|
|
11013
|
+
set(val) {
|
|
11014
|
+
this._setProp(key, val, true, !this._patching);
|
|
11015
|
+
}
|
|
11016
|
+
});
|
|
11017
|
+
}
|
|
10711
11018
|
}
|
|
10712
11019
|
_setAttr(key) {
|
|
10713
11020
|
if (key.startsWith("data-v-")) return;
|
|
@@ -10810,13 +11117,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10810
11117
|
_renderSlots() {
|
|
10811
11118
|
const outlets = this._getSlots();
|
|
10812
11119
|
const scopeId = this._instance.type.__scopeId;
|
|
10813
|
-
const slotReplacements = /* @__PURE__ */ new Map();
|
|
10814
11120
|
for (let i = 0; i < outlets.length; i++) {
|
|
10815
11121
|
const o = outlets[i];
|
|
10816
11122
|
const slotName = o.getAttribute("name") || "default";
|
|
10817
11123
|
const content = this._slots[slotName];
|
|
10818
11124
|
const parent = o.parentNode;
|
|
10819
|
-
const replacementNodes = [];
|
|
10820
11125
|
if (content) for (const n of content) {
|
|
10821
11126
|
if (scopeId && n.nodeType === 1) {
|
|
10822
11127
|
const id = scopeId + "-s";
|
|
@@ -10826,20 +11131,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10826
11131
|
while (child = walker.nextNode()) child.setAttribute(id, "");
|
|
10827
11132
|
}
|
|
10828
11133
|
parent.insertBefore(n, o);
|
|
10829
|
-
replacementNodes.push(n);
|
|
10830
|
-
}
|
|
10831
|
-
else while (o.firstChild) {
|
|
10832
|
-
const child = o.firstChild;
|
|
10833
|
-
parent.insertBefore(child, o);
|
|
10834
|
-
replacementNodes.push(child);
|
|
10835
11134
|
}
|
|
11135
|
+
else while (o.firstChild) parent.insertBefore(o.firstChild, o);
|
|
10836
11136
|
parent.removeChild(o);
|
|
10837
|
-
slotReplacements.set(o, {
|
|
10838
|
-
nodes: replacementNodes,
|
|
10839
|
-
usedFallback: !content
|
|
10840
|
-
});
|
|
10841
11137
|
}
|
|
10842
|
-
this._updateSlotNodes(slotReplacements);
|
|
10843
11138
|
}
|
|
10844
11139
|
/**
|
|
10845
11140
|
* @internal
|
|
@@ -10878,7 +11173,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10878
11173
|
* @internal
|
|
10879
11174
|
*/
|
|
10880
11175
|
_hasShadowRoot() {
|
|
10881
|
-
return this.
|
|
11176
|
+
return this._root !== this;
|
|
10882
11177
|
}
|
|
10883
11178
|
/**
|
|
10884
11179
|
* @internal
|
|
@@ -10923,10 +11218,6 @@ var VueElement = class extends VueElementBase {
|
|
|
10923
11218
|
if (this._instance && this._instance.ce) this._instance.ce = void 0;
|
|
10924
11219
|
this._app = this._instance = null;
|
|
10925
11220
|
}
|
|
10926
|
-
/**
|
|
10927
|
-
* Only called when shadowRoot is false
|
|
10928
|
-
*/
|
|
10929
|
-
_updateSlotNodes(replacements) {}
|
|
10930
11221
|
_createVNode() {
|
|
10931
11222
|
const baseProps = {};
|
|
10932
11223
|
if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
|
|
@@ -10993,7 +11284,7 @@ const decorate = (t) => {
|
|
|
10993
11284
|
};
|
|
10994
11285
|
const TransitionGroup = /* @__PURE__ */ decorate({
|
|
10995
11286
|
name: "TransitionGroup",
|
|
10996
|
-
props:
|
|
11287
|
+
props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
|
|
10997
11288
|
tag: String,
|
|
10998
11289
|
moveClass: String
|
|
10999
11290
|
}),
|
|
@@ -11125,13 +11416,22 @@ function onCompositionEnd(e) {
|
|
|
11125
11416
|
}
|
|
11126
11417
|
}
|
|
11127
11418
|
const assignKey = Symbol("_assign");
|
|
11419
|
+
const initialValueKey = Symbol("_initialValue");
|
|
11128
11420
|
const vModelText = {
|
|
11129
11421
|
created(el, { modifiers: { lazy, trim, number } }, vnode) {
|
|
11422
|
+
if (el.parentNode) {
|
|
11423
|
+
if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
|
|
11424
|
+
else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
|
|
11425
|
+
}
|
|
11130
11426
|
el[assignKey] = getModelAssigner(vnode);
|
|
11131
11427
|
vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
|
|
11132
11428
|
},
|
|
11133
|
-
mounted(el, { value }) {
|
|
11134
|
-
|
|
11429
|
+
mounted(el, { value, modifiers: { trim, number } }) {
|
|
11430
|
+
const newValue = value == null ? "" : value;
|
|
11431
|
+
const initialValue = el[initialValueKey];
|
|
11432
|
+
delete el[initialValueKey];
|
|
11433
|
+
if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
|
|
11434
|
+
else el.value = newValue;
|
|
11135
11435
|
},
|
|
11136
11436
|
beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
|
|
11137
11437
|
el[assignKey] = getModelAssigner(vnode);
|
|
@@ -11266,19 +11566,39 @@ const vModelSelectInit = (el, value, number, set) => {
|
|
|
11266
11566
|
el._modelValue = value;
|
|
11267
11567
|
addEventListener(el, "change", () => {
|
|
11268
11568
|
const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
|
|
11269
|
-
|
|
11270
|
-
el.
|
|
11271
|
-
|
|
11272
|
-
|
|
11273
|
-
|
|
11569
|
+
const multiple = el.multiple;
|
|
11570
|
+
const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
|
|
11571
|
+
const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
|
|
11572
|
+
try {
|
|
11573
|
+
(set || el[assignKey])(assignedValue);
|
|
11574
|
+
} finally {
|
|
11575
|
+
nextTick(() => {
|
|
11576
|
+
if (el._pendingValue === pending) el._pendingValue = void 0;
|
|
11577
|
+
});
|
|
11578
|
+
}
|
|
11274
11579
|
});
|
|
11275
11580
|
};
|
|
11581
|
+
function isSameSelectValue(value, assignedValue, multiple) {
|
|
11582
|
+
if (!multiple) return looseEqual(value, assignedValue);
|
|
11583
|
+
if (isArray(value)) return looseEqual(value, assignedValue);
|
|
11584
|
+
if (isSet(value)) {
|
|
11585
|
+
if (value.size !== assignedValue.length) return false;
|
|
11586
|
+
for (const item of assignedValue) if (!value.has(item)) return false;
|
|
11587
|
+
return true;
|
|
11588
|
+
}
|
|
11589
|
+
return false;
|
|
11590
|
+
}
|
|
11276
11591
|
/**
|
|
11277
11592
|
* @internal
|
|
11278
11593
|
*/
|
|
11279
11594
|
const vModelSetSelected = (el, value) => {
|
|
11280
11595
|
el._modelValue = value;
|
|
11281
|
-
|
|
11596
|
+
const pending = el._pendingValue;
|
|
11597
|
+
el._pendingValue = void 0;
|
|
11598
|
+
if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
|
|
11599
|
+
setSelected(el, value);
|
|
11600
|
+
};
|
|
11601
|
+
function setSelected(el, value) {
|
|
11282
11602
|
const isMultiple = el.multiple;
|
|
11283
11603
|
const isArrayValue = isArray(value);
|
|
11284
11604
|
if (isMultiple && !isArrayValue && !isSet(value)) {
|
|
@@ -11288,18 +11608,19 @@ const vModelSetSelected = (el, value) => {
|
|
|
11288
11608
|
for (let i = 0, l = el.options.length; i < l; i++) {
|
|
11289
11609
|
const option = el.options[i];
|
|
11290
11610
|
const optionValue = getValue(option);
|
|
11291
|
-
if (isMultiple)
|
|
11292
|
-
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11611
|
+
if (isMultiple) {
|
|
11612
|
+
if (isArrayValue) {
|
|
11613
|
+
const optionType = typeof optionValue;
|
|
11614
|
+
if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
|
|
11615
|
+
else option.selected = looseIndexOf(value, optionValue) > -1;
|
|
11616
|
+
} else option.selected = value.has(optionValue);
|
|
11617
|
+
} else if (looseEqual(getValue(option), value)) {
|
|
11297
11618
|
if (el.selectedIndex !== i) el.selectedIndex = i;
|
|
11298
11619
|
return;
|
|
11299
11620
|
}
|
|
11300
11621
|
}
|
|
11301
11622
|
if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
|
|
11302
|
-
}
|
|
11623
|
+
}
|
|
11303
11624
|
/**
|
|
11304
11625
|
* @internal retrieve raw value set via :value bindings
|
|
11305
11626
|
*/
|
|
@@ -11613,7 +11934,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
11613
11934
|
withModifiers: () => withModifiers,
|
|
11614
11935
|
withScopeId: () => withScopeId
|
|
11615
11936
|
});
|
|
11616
|
-
const rendererOptions =
|
|
11937
|
+
const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
|
|
11617
11938
|
let renderer;
|
|
11618
11939
|
let enabledHydration = false;
|
|
11619
11940
|
function ensureRenderer() {
|
|
@@ -11994,7 +12315,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
|
|
|
11994
12315
|
//#endregion
|
|
11995
12316
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
|
|
11996
12317
|
var _a;
|
|
11997
|
-
const decodeMap = new Map([
|
|
12318
|
+
const decodeMap = /* @__PURE__ */ new Map([
|
|
11998
12319
|
[0, 65533],
|
|
11999
12320
|
[128, 8364],
|
|
12000
12321
|
[130, 8218],
|
|
@@ -12062,7 +12383,7 @@ function decodeBase64(input) {
|
|
|
12062
12383
|
}
|
|
12063
12384
|
//#endregion
|
|
12064
12385
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
|
|
12065
|
-
const htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/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");
|
|
12386
|
+
const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
12066
12387
|
//#endregion
|
|
12067
12388
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
|
|
12068
12389
|
/**
|
|
@@ -12456,7 +12777,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
12456
12777
|
}
|
|
12457
12778
|
return -1;
|
|
12458
12779
|
}
|
|
12459
|
-
const htmlDecoder = /*
|
|
12780
|
+
const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
|
|
12460
12781
|
/**
|
|
12461
12782
|
* Decodes an HTML string.
|
|
12462
12783
|
*
|
|
@@ -12648,13 +12969,14 @@ var Tokenizer = class {
|
|
|
12648
12969
|
}
|
|
12649
12970
|
}
|
|
12650
12971
|
stateInterpolationOpen(c) {
|
|
12651
|
-
if (c === this.delimiterOpen[this.delimiterIndex])
|
|
12652
|
-
|
|
12653
|
-
|
|
12654
|
-
|
|
12655
|
-
|
|
12656
|
-
|
|
12657
|
-
|
|
12972
|
+
if (c === this.delimiterOpen[this.delimiterIndex]) {
|
|
12973
|
+
if (this.delimiterIndex === this.delimiterOpen.length - 1) {
|
|
12974
|
+
const start = this.index + 1 - this.delimiterOpen.length;
|
|
12975
|
+
if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
|
|
12976
|
+
this.state = 3;
|
|
12977
|
+
this.sectionStart = start;
|
|
12978
|
+
} else this.delimiterIndex++;
|
|
12979
|
+
} else if (this.inRCDATA) {
|
|
12658
12980
|
this.state = 32;
|
|
12659
12981
|
this.stateInRCDATA(c);
|
|
12660
12982
|
} else {
|
|
@@ -12670,13 +12992,14 @@ var Tokenizer = class {
|
|
|
12670
12992
|
}
|
|
12671
12993
|
}
|
|
12672
12994
|
stateInterpolationClose(c) {
|
|
12673
|
-
if (c === this.delimiterClose[this.delimiterIndex])
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
|
|
12679
|
-
|
|
12995
|
+
if (c === this.delimiterClose[this.delimiterIndex]) {
|
|
12996
|
+
if (this.delimiterIndex === this.delimiterClose.length - 1) {
|
|
12997
|
+
this.cbs.oninterpolation(this.sectionStart, this.index + 1);
|
|
12998
|
+
if (this.inRCDATA) this.state = 32;
|
|
12999
|
+
else this.state = 1;
|
|
13000
|
+
this.sectionStart = this.index + 1;
|
|
13001
|
+
} else this.delimiterIndex++;
|
|
13002
|
+
} else {
|
|
12680
13003
|
this.state = 3;
|
|
12681
13004
|
this.stateInterpolation(c);
|
|
12682
13005
|
}
|
|
@@ -12792,9 +13115,10 @@ var Tokenizer = class {
|
|
|
12792
13115
|
this.sectionStart = this.index;
|
|
12793
13116
|
if (this.mode === 0) this.state = 6;
|
|
12794
13117
|
else if (this.inSFCRoot) this.state = 34;
|
|
12795
|
-
else if (!this.inXML)
|
|
12796
|
-
|
|
12797
|
-
|
|
13118
|
+
else if (!this.inXML) {
|
|
13119
|
+
if (c === 116) this.state = 30;
|
|
13120
|
+
else this.state = c === 115 ? 29 : 6;
|
|
13121
|
+
} else this.state = 6;
|
|
12798
13122
|
} else if (c === 47) this.state = 8;
|
|
12799
13123
|
else {
|
|
12800
13124
|
this.state = 1;
|
|
@@ -13161,9 +13485,7 @@ var Tokenizer = class {
|
|
|
13161
13485
|
case 24:
|
|
13162
13486
|
this.stateInProcessingInstruction(c);
|
|
13163
13487
|
break;
|
|
13164
|
-
case 33:
|
|
13165
|
-
this.stateInEntity();
|
|
13166
|
-
break;
|
|
13488
|
+
case 33: this.stateInEntity();
|
|
13167
13489
|
}
|
|
13168
13490
|
this.index++;
|
|
13169
13491
|
}
|
|
@@ -13196,9 +13518,10 @@ var Tokenizer = class {
|
|
|
13196
13518
|
handleTrailingData() {
|
|
13197
13519
|
const endIndex = this.buffer.length;
|
|
13198
13520
|
if (this.sectionStart >= endIndex) return;
|
|
13199
|
-
if (this.state === 28)
|
|
13200
|
-
|
|
13201
|
-
|
|
13521
|
+
if (this.state === 28) {
|
|
13522
|
+
if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
|
|
13523
|
+
else this.cbs.oncomment(this.sectionStart, endIndex);
|
|
13524
|
+
} else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
|
|
13202
13525
|
}
|
|
13203
13526
|
emitCodePoint(cp, consumed) {
|
|
13204
13527
|
if (this.baseState !== 1 && this.baseState !== 32) {
|
|
@@ -13359,16 +13682,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
13359
13682
|
const isRefed = isReferencedIdentifier(node, parent, parentStack);
|
|
13360
13683
|
if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
|
|
13361
13684
|
} else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
|
|
13362
|
-
else if (isFunctionType(node))
|
|
13363
|
-
|
|
13364
|
-
|
|
13365
|
-
else
|
|
13366
|
-
|
|
13367
|
-
|
|
13368
|
-
else if (node.type === "
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
else
|
|
13685
|
+
else if (isFunctionType(node)) {
|
|
13686
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13687
|
+
else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13688
|
+
} else if (node.type === "BlockStatement") {
|
|
13689
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13690
|
+
else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13691
|
+
} else if (node.type === "SwitchStatement") {
|
|
13692
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13693
|
+
else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13694
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
13695
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13696
|
+
else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
|
|
13697
|
+
} else if (isForStatement(node)) {
|
|
13698
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13699
|
+
else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13700
|
+
}
|
|
13372
13701
|
},
|
|
13373
13702
|
leave(node, parent) {
|
|
13374
13703
|
parent && parentStack.pop();
|
|
@@ -13460,9 +13789,7 @@ function extractIdentifiers(param, nodes = []) {
|
|
|
13460
13789
|
case "RestElement":
|
|
13461
13790
|
extractIdentifiers(param.argument, nodes);
|
|
13462
13791
|
break;
|
|
13463
|
-
case "AssignmentPattern":
|
|
13464
|
-
extractIdentifiers(param.left, nodes);
|
|
13465
|
-
break;
|
|
13792
|
+
case "AssignmentPattern": extractIdentifiers(param.left, nodes);
|
|
13466
13793
|
}
|
|
13467
13794
|
return nodes;
|
|
13468
13795
|
}
|
|
@@ -13658,7 +13985,7 @@ function isTemplateNode(node) {
|
|
|
13658
13985
|
function isSlotOutlet(node) {
|
|
13659
13986
|
return node.type === 1 && node.tagType === 2;
|
|
13660
13987
|
}
|
|
13661
|
-
const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13988
|
+
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13662
13989
|
function getUnnormalizedProps(props, callPath = []) {
|
|
13663
13990
|
if (props && !isString(props) && props.type === 14) {
|
|
13664
13991
|
const callee = props.callee;
|
|
@@ -13701,9 +14028,10 @@ function injectProp(node, prop, context) {
|
|
|
13701
14028
|
propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
|
|
13702
14029
|
if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
|
|
13703
14030
|
}
|
|
13704
|
-
if (node.type === 13)
|
|
13705
|
-
|
|
13706
|
-
|
|
14031
|
+
if (node.type === 13) {
|
|
14032
|
+
if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
14033
|
+
else node.props = propsWithInjection;
|
|
14034
|
+
} else if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
13707
14035
|
else node.arguments[2] = propsWithInjection;
|
|
13708
14036
|
}
|
|
13709
14037
|
function injectSlotKey(node, prop) {
|
|
@@ -13943,26 +14271,28 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
13943
14271
|
onattribend(quote, end) {
|
|
13944
14272
|
if (currentOpenTag && currentProp) {
|
|
13945
14273
|
setLocEnd(currentProp.loc, end);
|
|
13946
|
-
if (quote !== 0)
|
|
13947
|
-
if (currentProp.
|
|
13948
|
-
|
|
13949
|
-
|
|
13950
|
-
|
|
13951
|
-
|
|
13952
|
-
|
|
13953
|
-
|
|
13954
|
-
|
|
13955
|
-
|
|
13956
|
-
|
|
13957
|
-
|
|
13958
|
-
|
|
13959
|
-
|
|
13960
|
-
|
|
13961
|
-
|
|
13962
|
-
|
|
13963
|
-
|
|
13964
|
-
currentProp.name = "
|
|
13965
|
-
|
|
14274
|
+
if (quote !== 0) {
|
|
14275
|
+
if (currentProp.type === 6) {
|
|
14276
|
+
if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
|
|
14277
|
+
if (quote === 1 && !currentAttrValue) emitError(13, end);
|
|
14278
|
+
currentProp.value = {
|
|
14279
|
+
type: 2,
|
|
14280
|
+
content: currentAttrValue,
|
|
14281
|
+
loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
|
|
14282
|
+
};
|
|
14283
|
+
if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
|
|
14284
|
+
} else {
|
|
14285
|
+
let expParseMode = 0;
|
|
14286
|
+
if (currentProp.name === "for") expParseMode = 3;
|
|
14287
|
+
else if (currentProp.name === "slot") expParseMode = 1;
|
|
14288
|
+
else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
|
|
14289
|
+
currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
|
|
14290
|
+
if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
|
|
14291
|
+
let syncIndex = -1;
|
|
14292
|
+
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)) {
|
|
14293
|
+
currentProp.name = "model";
|
|
14294
|
+
currentProp.modifiers.splice(syncIndex, 1);
|
|
14295
|
+
}
|
|
13966
14296
|
}
|
|
13967
14297
|
}
|
|
13968
14298
|
if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
|
|
@@ -14005,10 +14335,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
14005
14335
|
case 18:
|
|
14006
14336
|
case 19:
|
|
14007
14337
|
case 20:
|
|
14008
|
-
case 21:
|
|
14009
|
-
emitError(9, end);
|
|
14010
|
-
break;
|
|
14011
|
-
default: break;
|
|
14338
|
+
case 21: emitError(9, end);
|
|
14012
14339
|
}
|
|
14013
14340
|
for (let index = 0; index < stack.length; index++) {
|
|
14014
14341
|
onCloseTag(stack[index], end - 1);
|
|
@@ -14154,7 +14481,7 @@ function backTrack(index, c) {
|
|
|
14154
14481
|
while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
|
|
14155
14482
|
return i;
|
|
14156
14483
|
}
|
|
14157
|
-
const specialTemplateDir = new Set([
|
|
14484
|
+
const specialTemplateDir = /* @__PURE__ */ new Set([
|
|
14158
14485
|
"if",
|
|
14159
14486
|
"else",
|
|
14160
14487
|
"else-if",
|
|
@@ -14190,16 +14517,18 @@ function condenseWhitespace(nodes) {
|
|
|
14190
14517
|
let removedWhitespace = false;
|
|
14191
14518
|
for (let i = 0; i < nodes.length; i++) {
|
|
14192
14519
|
const node = nodes[i];
|
|
14193
|
-
if (node.type === 2)
|
|
14194
|
-
if (
|
|
14195
|
-
|
|
14196
|
-
|
|
14197
|
-
|
|
14198
|
-
|
|
14199
|
-
|
|
14200
|
-
|
|
14201
|
-
|
|
14202
|
-
|
|
14520
|
+
if (node.type === 2) {
|
|
14521
|
+
if (!inPre) {
|
|
14522
|
+
if (isAllWhitespace(node.content)) {
|
|
14523
|
+
const prev = nodes[i - 1] && nodes[i - 1].type;
|
|
14524
|
+
const next = nodes[i + 1] && nodes[i + 1].type;
|
|
14525
|
+
if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
|
|
14526
|
+
removedWhitespace = true;
|
|
14527
|
+
nodes[i] = null;
|
|
14528
|
+
} else node.content = " ";
|
|
14529
|
+
} else if (shouldCondense) node.content = condense(node.content);
|
|
14530
|
+
} else node.content = node.content.replace(windowsNewlineRE, "\n");
|
|
14531
|
+
}
|
|
14203
14532
|
}
|
|
14204
14533
|
return removedWhitespace ? nodes.filter(Boolean) : nodes;
|
|
14205
14534
|
}
|
|
@@ -14477,7 +14806,7 @@ function getConstantType(node, context) {
|
|
|
14477
14806
|
default: return 0;
|
|
14478
14807
|
}
|
|
14479
14808
|
}
|
|
14480
|
-
const allowHoistedHelperSet = new Set([
|
|
14809
|
+
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
|
|
14481
14810
|
NORMALIZE_CLASS,
|
|
14482
14811
|
NORMALIZE_STYLE,
|
|
14483
14812
|
NORMALIZE_PROPS,
|
|
@@ -14521,7 +14850,7 @@ function getSelfName(filename) {
|
|
|
14521
14850
|
const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
|
|
14522
14851
|
return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
|
|
14523
14852
|
}
|
|
14524
|
-
function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false,
|
|
14853
|
+
function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
|
|
14525
14854
|
const context = {
|
|
14526
14855
|
filename,
|
|
14527
14856
|
selfName: getSelfName(filename),
|
|
@@ -14543,7 +14872,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
|
|
|
14543
14872
|
bindingMetadata,
|
|
14544
14873
|
inline,
|
|
14545
14874
|
isTS,
|
|
14546
|
-
eventDelegation,
|
|
14547
14875
|
onError,
|
|
14548
14876
|
onWarn,
|
|
14549
14877
|
compatConfig,
|
|
@@ -14655,7 +14983,7 @@ function transform(root, options) {
|
|
|
14655
14983
|
traverseNode(root, context);
|
|
14656
14984
|
if (options.hoistStatic) cacheStatic(root, context);
|
|
14657
14985
|
if (!options.ssr) createRootCodegen(root, context);
|
|
14658
|
-
root.helpers = new Set([...context.helpers.keys()]);
|
|
14986
|
+
root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
|
|
14659
14987
|
root.components = [...context.components];
|
|
14660
14988
|
root.directives = [...context.directives];
|
|
14661
14989
|
root.imports = context.imports;
|
|
@@ -14702,8 +15030,10 @@ function traverseNode(node, context) {
|
|
|
14702
15030
|
const exitFns = [];
|
|
14703
15031
|
for (let i = 0; i < nodeTransforms.length; i++) {
|
|
14704
15032
|
const onExit = nodeTransforms[i](node, context);
|
|
14705
|
-
if (onExit)
|
|
14706
|
-
|
|
15033
|
+
if (onExit) {
|
|
15034
|
+
if (isArray(onExit)) exitFns.push(...onExit);
|
|
15035
|
+
else exitFns.push(onExit);
|
|
15036
|
+
}
|
|
14707
15037
|
if (!context.currentNode) return;
|
|
14708
15038
|
else node = context.currentNode;
|
|
14709
15039
|
}
|
|
@@ -14720,9 +15050,7 @@ function traverseNode(node, context) {
|
|
|
14720
15050
|
case 10:
|
|
14721
15051
|
case 11:
|
|
14722
15052
|
case 1:
|
|
14723
|
-
case 0:
|
|
14724
|
-
traverseChildren(node, context);
|
|
14725
|
-
break;
|
|
15053
|
+
case 0: traverseChildren(node, context);
|
|
14726
15054
|
}
|
|
14727
15055
|
context.currentNode = node;
|
|
14728
15056
|
let i = exitFns.length;
|
|
@@ -14908,16 +15236,18 @@ function genFunctionPreamble(ast, context) {
|
|
|
14908
15236
|
const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
|
|
14909
15237
|
const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
|
|
14910
15238
|
const helpers = Array.from(ast.helpers);
|
|
14911
|
-
if (helpers.length > 0)
|
|
14912
|
-
|
|
14913
|
-
|
|
14914
|
-
|
|
14915
|
-
|
|
14916
|
-
|
|
14917
|
-
|
|
14918
|
-
|
|
14919
|
-
|
|
14920
|
-
|
|
15239
|
+
if (helpers.length > 0) {
|
|
15240
|
+
if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
|
|
15241
|
+
else {
|
|
15242
|
+
push(`const _Vue = ${VueBinding}\n`, -1);
|
|
15243
|
+
if (ast.hoists.length) push(`const { ${[
|
|
15244
|
+
CREATE_VNODE,
|
|
15245
|
+
CREATE_ELEMENT_VNODE,
|
|
15246
|
+
CREATE_COMMENT,
|
|
15247
|
+
CREATE_TEXT,
|
|
15248
|
+
CREATE_STATIC
|
|
15249
|
+
].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
|
|
15250
|
+
}
|
|
14921
15251
|
}
|
|
14922
15252
|
if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
|
|
14923
15253
|
genHoists(ast.hoists, context);
|
|
@@ -14994,10 +15324,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
|
|
|
14994
15324
|
if (isString(node)) push(node, -3);
|
|
14995
15325
|
else if (isArray(node)) genNodeListAsArray(node, context);
|
|
14996
15326
|
else genNode(node, context);
|
|
14997
|
-
if (i < nodes.length - 1)
|
|
14998
|
-
|
|
14999
|
-
|
|
15000
|
-
|
|
15327
|
+
if (i < nodes.length - 1) {
|
|
15328
|
+
if (multilines) {
|
|
15329
|
+
comma && push(",");
|
|
15330
|
+
newline();
|
|
15331
|
+
} else comma && push(", ");
|
|
15332
|
+
}
|
|
15001
15333
|
}
|
|
15002
15334
|
}
|
|
15003
15335
|
function genNode(node, context) {
|
|
@@ -15119,8 +15451,10 @@ function genVNodeCall(node, context) {
|
|
|
15119
15451
|
const { push, helper, pure } = context;
|
|
15120
15452
|
const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
|
|
15121
15453
|
let patchFlagString;
|
|
15122
|
-
if (patchFlag)
|
|
15123
|
-
|
|
15454
|
+
if (patchFlag) {
|
|
15455
|
+
if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
|
|
15456
|
+
else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
|
|
15457
|
+
}
|
|
15124
15458
|
if (directives) push(helper(WITH_DIRECTIVES) + `(`);
|
|
15125
15459
|
if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
|
|
15126
15460
|
if (pure) push(PURE_ANNOTATION);
|
|
@@ -15316,7 +15650,7 @@ function genReturnStatement({ returns }, context) {
|
|
|
15316
15650
|
}
|
|
15317
15651
|
//#endregion
|
|
15318
15652
|
//#region packages/compiler-core/src/transforms/transformExpression.ts
|
|
15319
|
-
const isLiteralWhitelisted =
|
|
15653
|
+
const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
|
|
15320
15654
|
const transformExpression = (node, context) => {
|
|
15321
15655
|
if (node.type === 5) node.content = processExpression(node.content, context);
|
|
15322
15656
|
else if (node.type === 1) {
|
|
@@ -15349,20 +15683,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15349
15683
|
if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
|
|
15350
15684
|
else if (type === "setup-ref") return `${raw}.value`;
|
|
15351
15685
|
else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
|
|
15352
|
-
else if (type === "setup-let")
|
|
15353
|
-
|
|
15354
|
-
|
|
15355
|
-
|
|
15356
|
-
|
|
15357
|
-
|
|
15358
|
-
|
|
15359
|
-
|
|
15360
|
-
|
|
15361
|
-
|
|
15362
|
-
|
|
15363
|
-
|
|
15364
|
-
|
|
15365
|
-
|
|
15686
|
+
else if (type === "setup-let") {
|
|
15687
|
+
if (isAssignmentLVal) {
|
|
15688
|
+
const { right: rVal, operator } = parent;
|
|
15689
|
+
const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
|
|
15690
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
|
|
15691
|
+
} else if (isUpdateArg) {
|
|
15692
|
+
id.start = parent.start;
|
|
15693
|
+
id.end = parent.end;
|
|
15694
|
+
const { prefix: isPrefix, operator } = parent;
|
|
15695
|
+
const prefix = isPrefix ? operator : ``;
|
|
15696
|
+
const postfix = isPrefix ? `` : operator;
|
|
15697
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
|
|
15698
|
+
} else if (isDestructureAssignment) return raw;
|
|
15699
|
+
else return wrapWithUnref(raw);
|
|
15700
|
+
} else if (type === "props") return genPropsAccessExp(raw);
|
|
15366
15701
|
else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
|
|
15367
15702
|
} else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
|
|
15368
15703
|
else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
|
|
@@ -15379,8 +15714,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15379
15714
|
if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
|
|
15380
15715
|
if (isConst(bindingMetadata[rawExp])) node.constType = 1;
|
|
15381
15716
|
node.content = rewriteIdentifier(rawExp);
|
|
15382
|
-
} else if (!isScopeVarReference)
|
|
15383
|
-
|
|
15717
|
+
} else if (!isScopeVarReference) {
|
|
15718
|
+
if (isLiteral) node.constType = 3;
|
|
15719
|
+
else node.constType = 2;
|
|
15720
|
+
}
|
|
15384
15721
|
return node;
|
|
15385
15722
|
}
|
|
15386
15723
|
if (!ast) {
|
|
@@ -15539,16 +15876,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
|
|
|
15539
15876
|
const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
|
|
15540
15877
|
const { children } = branch;
|
|
15541
15878
|
const firstChild = children[0];
|
|
15542
|
-
if (children.length !== 1 || firstChild.type !== 1)
|
|
15543
|
-
|
|
15544
|
-
|
|
15545
|
-
|
|
15879
|
+
if (children.length !== 1 || firstChild.type !== 1) {
|
|
15880
|
+
if (children.length === 1 && firstChild.type === 11) {
|
|
15881
|
+
const vnodeCall = firstChild.codegenNode;
|
|
15882
|
+
injectProp(vnodeCall, keyProperty, context);
|
|
15883
|
+
return vnodeCall;
|
|
15884
|
+
} else {
|
|
15885
|
+
let patchFlag = 64;
|
|
15886
|
+
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15887
|
+
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15888
|
+
}
|
|
15546
15889
|
} else {
|
|
15547
|
-
let patchFlag = 64;
|
|
15548
|
-
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15549
|
-
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15550
|
-
}
|
|
15551
|
-
else {
|
|
15552
15890
|
const ret = firstChild.codegenNode;
|
|
15553
15891
|
const vnodeCall = getMemoedVNodeCall(ret);
|
|
15554
15892
|
if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
|
|
@@ -15569,9 +15907,10 @@ function isSameKey(a, b) {
|
|
|
15569
15907
|
return true;
|
|
15570
15908
|
}
|
|
15571
15909
|
function getParentCondition(node) {
|
|
15572
|
-
while (true) if (node.type === 19)
|
|
15573
|
-
|
|
15574
|
-
|
|
15910
|
+
while (true) if (node.type === 19) {
|
|
15911
|
+
if (node.alternate.type === 19) node = node.alternate;
|
|
15912
|
+
else return node;
|
|
15913
|
+
} else if (node.type === 20) node = node.value;
|
|
15575
15914
|
}
|
|
15576
15915
|
//#endregion
|
|
15577
15916
|
//#region packages/compiler-core/src/transforms/vFor.ts
|
|
@@ -15614,15 +15953,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
15614
15953
|
else {
|
|
15615
15954
|
childBlock = children[0].codegenNode;
|
|
15616
15955
|
if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
|
|
15617
|
-
|
|
15618
|
-
|
|
15619
|
-
|
|
15620
|
-
|
|
15621
|
-
|
|
15956
|
+
const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
|
|
15957
|
+
if (childBlock.isBlock !== shouldUseBlock) {
|
|
15958
|
+
if (childBlock.isBlock) {
|
|
15959
|
+
removeHelper(OPEN_BLOCK);
|
|
15960
|
+
removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
15961
|
+
} else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
15962
|
+
}
|
|
15963
|
+
childBlock.isBlock = shouldUseBlock;
|
|
15622
15964
|
if (childBlock.isBlock) {
|
|
15623
15965
|
helper(OPEN_BLOCK);
|
|
15624
15966
|
helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
15625
|
-
} else
|
|
15967
|
+
} else {
|
|
15968
|
+
helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
15969
|
+
if (childBlock.needsPatch) {
|
|
15970
|
+
var _childBlock$patchFlag;
|
|
15971
|
+
childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
|
|
15972
|
+
}
|
|
15973
|
+
}
|
|
15626
15974
|
}
|
|
15627
15975
|
if (memo) {
|
|
15628
15976
|
const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
|
|
@@ -15828,8 +16176,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
|
|
|
15828
16176
|
return createObjectProperty(`default`, fn);
|
|
15829
16177
|
};
|
|
15830
16178
|
if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
|
|
15831
|
-
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText))
|
|
15832
|
-
|
|
16179
|
+
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
|
|
16180
|
+
if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
|
|
16181
|
+
else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
|
|
16182
|
+
}
|
|
15833
16183
|
}
|
|
15834
16184
|
const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
|
|
15835
16185
|
let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ` /* ${slotFlagsText[slotFlag]} */`, false))), loc);
|
|
@@ -15855,10 +16205,7 @@ function hasForwardedSlots(children) {
|
|
|
15855
16205
|
if (hasForwardedSlots(child.branches)) return true;
|
|
15856
16206
|
break;
|
|
15857
16207
|
case 10:
|
|
15858
|
-
case 11:
|
|
15859
|
-
if (hasForwardedSlots(child.children)) return true;
|
|
15860
|
-
break;
|
|
15861
|
-
default: break;
|
|
16208
|
+
case 11: if (hasForwardedSlots(child.children)) return true;
|
|
15862
16209
|
}
|
|
15863
16210
|
}
|
|
15864
16211
|
return false;
|
|
@@ -15880,12 +16227,16 @@ const transformElement = (node, context) => {
|
|
|
15880
16227
|
let vnodeDynamicProps;
|
|
15881
16228
|
let dynamicPropNames;
|
|
15882
16229
|
let vnodeDirectives;
|
|
16230
|
+
let needsPatch = false;
|
|
16231
|
+
let isBlockRequired = false;
|
|
15883
16232
|
let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
|
|
15884
16233
|
if (props.length > 0) {
|
|
15885
16234
|
const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
|
|
15886
16235
|
vnodeProps = propsBuildResult.props;
|
|
15887
16236
|
patchFlag = propsBuildResult.patchFlag;
|
|
15888
16237
|
dynamicPropNames = propsBuildResult.dynamicPropNames;
|
|
16238
|
+
needsPatch = propsBuildResult.needsPatch;
|
|
16239
|
+
isBlockRequired = propsBuildResult.isBlockRequired;
|
|
15889
16240
|
const directives = propsBuildResult.directives;
|
|
15890
16241
|
vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
|
|
15891
16242
|
if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
|
|
@@ -15914,7 +16265,10 @@ const transformElement = (node, context) => {
|
|
|
15914
16265
|
} else vnodeChildren = node.children;
|
|
15915
16266
|
}
|
|
15916
16267
|
if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
|
|
15917
|
-
node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
16268
|
+
const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
|
|
16269
|
+
needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
|
|
16270
|
+
if (needsPatch) vnodeCall.needsPatch = true;
|
|
16271
|
+
if (isBlockRequired) vnodeCall.isBlockRequired = true;
|
|
15918
16272
|
};
|
|
15919
16273
|
};
|
|
15920
16274
|
function resolveComponentType(node, context, ssr = false) {
|
|
@@ -15999,6 +16353,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
15999
16353
|
const runtimeDirectives = [];
|
|
16000
16354
|
const hasChildren = children.length > 0;
|
|
16001
16355
|
let shouldUseBlock = false;
|
|
16356
|
+
let isBlockRequired = false;
|
|
16002
16357
|
let patchFlag = 0;
|
|
16003
16358
|
let hasRef = false;
|
|
16004
16359
|
let hasClassBinding = false;
|
|
@@ -16023,12 +16378,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16023
16378
|
const isEventHandler = isOn(name);
|
|
16024
16379
|
if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
|
|
16025
16380
|
if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
|
|
16381
|
+
if (name === "ref") hasRef = true;
|
|
16026
16382
|
if (isEventHandler && value.type === 14) value = value.arguments[0];
|
|
16027
16383
|
if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
|
|
16028
|
-
if (name === "
|
|
16029
|
-
else if (name === "class") hasClassBinding = true;
|
|
16384
|
+
if (name === "class") hasClassBinding = true;
|
|
16030
16385
|
else if (name === "style") hasStyleBinding = true;
|
|
16031
|
-
else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
16386
|
+
else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
16032
16387
|
if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
|
|
16033
16388
|
} else hasDynamicKeys = true;
|
|
16034
16389
|
};
|
|
@@ -16061,33 +16416,38 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16061
16416
|
if (name === "once" || name === "memo") continue;
|
|
16062
16417
|
if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
|
|
16063
16418
|
if (isVOn && ssr) continue;
|
|
16064
|
-
if (isVBind && isStaticArgOf(arg, "key")
|
|
16419
|
+
if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
|
|
16420
|
+
if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
|
|
16421
|
+
shouldUseBlock = true;
|
|
16422
|
+
isBlockRequired = true;
|
|
16423
|
+
}
|
|
16065
16424
|
if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
|
|
16066
16425
|
if (!arg && (isVBind || isVOn)) {
|
|
16067
16426
|
hasDynamicKeys = true;
|
|
16068
|
-
if (exp)
|
|
16069
|
-
|
|
16070
|
-
|
|
16071
|
-
if (
|
|
16072
|
-
if (
|
|
16073
|
-
|
|
16074
|
-
|
|
16075
|
-
|
|
16076
|
-
|
|
16077
|
-
|
|
16078
|
-
|
|
16079
|
-
|
|
16080
|
-
|
|
16081
|
-
|
|
16082
|
-
|
|
16083
|
-
|
|
16084
|
-
|
|
16085
|
-
|
|
16086
|
-
|
|
16087
|
-
|
|
16088
|
-
|
|
16089
|
-
|
|
16090
|
-
|
|
16427
|
+
if (exp) {
|
|
16428
|
+
if (isVBind) {
|
|
16429
|
+
pushMergeArg();
|
|
16430
|
+
if (mergeArgs.some((arg) => {
|
|
16431
|
+
if (arg.type === 15) return arg.properties.some(({ key }) => {
|
|
16432
|
+
if (key.type !== 4 || !key.isStatic) return true;
|
|
16433
|
+
return key.content !== "class" && key.content !== "style" && !isOn(key.content);
|
|
16434
|
+
});
|
|
16435
|
+
else return true;
|
|
16436
|
+
})) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
|
|
16437
|
+
if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
|
|
16438
|
+
mergeArgs.unshift(exp);
|
|
16439
|
+
continue;
|
|
16440
|
+
}
|
|
16441
|
+
pushRefVForMarker();
|
|
16442
|
+
pushMergeArg();
|
|
16443
|
+
mergeArgs.push(exp);
|
|
16444
|
+
} else pushMergeArg({
|
|
16445
|
+
type: 14,
|
|
16446
|
+
loc,
|
|
16447
|
+
callee: context.helper(TO_HANDLERS),
|
|
16448
|
+
arguments: isComponent ? [exp] : [exp, `true`]
|
|
16449
|
+
});
|
|
16450
|
+
} else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
|
|
16091
16451
|
continue;
|
|
16092
16452
|
}
|
|
16093
16453
|
if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
|
|
@@ -16103,7 +16463,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16103
16463
|
}
|
|
16104
16464
|
} else if (!isBuiltInDirective(name)) {
|
|
16105
16465
|
runtimeDirectives.push(prop);
|
|
16106
|
-
if (hasChildren)
|
|
16466
|
+
if (hasChildren) {
|
|
16467
|
+
shouldUseBlock = true;
|
|
16468
|
+
isBlockRequired = true;
|
|
16469
|
+
}
|
|
16107
16470
|
}
|
|
16108
16471
|
}
|
|
16109
16472
|
}
|
|
@@ -16120,7 +16483,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16120
16483
|
if (dynamicPropNames.length) patchFlag |= 8;
|
|
16121
16484
|
if (hasHydrationEventBinding) patchFlag |= 32;
|
|
16122
16485
|
}
|
|
16123
|
-
|
|
16486
|
+
const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
|
|
16487
|
+
if (!shouldUseBlock && needsPatch) patchFlag |= 512;
|
|
16124
16488
|
if (!context.inSSR && propsExpression) switch (propsExpression.type) {
|
|
16125
16489
|
case 15:
|
|
16126
16490
|
let classKeyIndex = -1;
|
|
@@ -16141,16 +16505,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16141
16505
|
} else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
|
|
16142
16506
|
break;
|
|
16143
16507
|
case 14: break;
|
|
16144
|
-
default:
|
|
16145
|
-
propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16146
|
-
break;
|
|
16508
|
+
default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16147
16509
|
}
|
|
16148
16510
|
return {
|
|
16149
16511
|
props: propsExpression,
|
|
16150
16512
|
directives: runtimeDirectives,
|
|
16151
16513
|
patchFlag,
|
|
16152
16514
|
dynamicPropNames,
|
|
16153
|
-
shouldUseBlock
|
|
16515
|
+
shouldUseBlock,
|
|
16516
|
+
needsPatch,
|
|
16517
|
+
isBlockRequired
|
|
16154
16518
|
};
|
|
16155
16519
|
}
|
|
16156
16520
|
function dedupeProperties(properties) {
|
|
@@ -16251,10 +16615,12 @@ function processSlotOutlet(node, context) {
|
|
|
16251
16615
|
for (let i = 0; i < node.props.length; i++) {
|
|
16252
16616
|
const p = node.props[i];
|
|
16253
16617
|
if (p.type === 6) {
|
|
16254
|
-
if (p.value)
|
|
16255
|
-
|
|
16256
|
-
|
|
16257
|
-
|
|
16618
|
+
if (p.value) {
|
|
16619
|
+
if (p.name === "name") slotName = JSON.stringify(p.value.content);
|
|
16620
|
+
else {
|
|
16621
|
+
p.name = camelize(p.name);
|
|
16622
|
+
nonNameProps.push(p);
|
|
16623
|
+
}
|
|
16258
16624
|
}
|
|
16259
16625
|
} else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
|
|
16260
16626
|
if (p.exp) slotName = p.exp;
|
|
@@ -16283,17 +16649,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16283
16649
|
const { loc, modifiers, arg } = dir;
|
|
16284
16650
|
if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
|
|
16285
16651
|
let eventName;
|
|
16286
|
-
if (arg.type === 4)
|
|
16287
|
-
|
|
16288
|
-
|
|
16289
|
-
|
|
16290
|
-
|
|
16291
|
-
|
|
16292
|
-
|
|
16293
|
-
|
|
16294
|
-
|
|
16295
|
-
|
|
16296
|
-
|
|
16652
|
+
if (arg.type === 4) {
|
|
16653
|
+
if (arg.isStatic) {
|
|
16654
|
+
let rawName = arg.content;
|
|
16655
|
+
if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
|
|
16656
|
+
if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
|
|
16657
|
+
eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
|
|
16658
|
+
} else eventName = createCompoundExpression([
|
|
16659
|
+
`${context.helperString(TO_HANDLER_KEY)}(`,
|
|
16660
|
+
arg,
|
|
16661
|
+
`)`
|
|
16662
|
+
]);
|
|
16663
|
+
} else {
|
|
16297
16664
|
eventName = arg;
|
|
16298
16665
|
eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
|
|
16299
16666
|
eventName.children.push(`)`);
|
|
@@ -16310,13 +16677,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16310
16677
|
exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
|
|
16311
16678
|
isInlineStatement && context.removeIdentifiers(`$event`);
|
|
16312
16679
|
shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
|
|
16313
|
-
if (shouldCache && isMemberExp)
|
|
16314
|
-
|
|
16315
|
-
|
|
16316
|
-
|
|
16317
|
-
|
|
16318
|
-
|
|
16319
|
-
|
|
16680
|
+
if (shouldCache && isMemberExp) {
|
|
16681
|
+
if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
|
|
16682
|
+
else exp.children = [
|
|
16683
|
+
...exp.children,
|
|
16684
|
+
` && `,
|
|
16685
|
+
...exp.children,
|
|
16686
|
+
`(...args)`
|
|
16687
|
+
];
|
|
16688
|
+
}
|
|
16320
16689
|
}
|
|
16321
16690
|
if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
|
|
16322
16691
|
`${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
|
|
@@ -16344,11 +16713,14 @@ const transformBind = (dir, _node, context) => {
|
|
|
16344
16713
|
arg.children.unshift(`(`);
|
|
16345
16714
|
arg.children.push(`) || ""`);
|
|
16346
16715
|
} else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
|
|
16347
|
-
if (modifiers.some((mod) => mod.content === "camel"))
|
|
16348
|
-
|
|
16349
|
-
|
|
16350
|
-
|
|
16351
|
-
|
|
16716
|
+
if (modifiers.some((mod) => mod.content === "camel")) {
|
|
16717
|
+
if (arg.type === 4) {
|
|
16718
|
+
if (arg.isStatic) arg.content = camelize(arg.content);
|
|
16719
|
+
else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
|
|
16720
|
+
} else {
|
|
16721
|
+
arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
|
|
16722
|
+
arg.children.push(`)`);
|
|
16723
|
+
}
|
|
16352
16724
|
}
|
|
16353
16725
|
if (!context.inSSR) {
|
|
16354
16726
|
if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
|
|
@@ -16357,9 +16729,10 @@ const transformBind = (dir, _node, context) => {
|
|
|
16357
16729
|
return { props: [createObjectProperty(arg, exp)] };
|
|
16358
16730
|
};
|
|
16359
16731
|
const injectPrefix = (arg, prefix) => {
|
|
16360
|
-
if (arg.type === 4)
|
|
16361
|
-
|
|
16362
|
-
|
|
16732
|
+
if (arg.type === 4) {
|
|
16733
|
+
if (arg.isStatic) arg.content = prefix + arg.content;
|
|
16734
|
+
else arg.content = `\`${prefix}\${${arg.content}}\``;
|
|
16735
|
+
} else {
|
|
16363
16736
|
arg.children.unshift(`'${prefix}' + (`);
|
|
16364
16737
|
arg.children.push(`)`);
|
|
16365
16738
|
}
|
|
@@ -16454,20 +16827,21 @@ const transformModel$1 = (dir, node, context) => {
|
|
|
16454
16827
|
const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
|
|
16455
16828
|
let assignmentExp;
|
|
16456
16829
|
const eventArg = context.isTS ? `($event: any)` : `$event`;
|
|
16457
|
-
if (maybeRef)
|
|
16458
|
-
|
|
16459
|
-
|
|
16460
|
-
`).value = $event)`
|
|
16461
|
-
]);
|
|
16462
|
-
else {
|
|
16463
|
-
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16464
|
-
assignmentExp = createCompoundExpression([
|
|
16465
|
-
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16830
|
+
if (maybeRef) {
|
|
16831
|
+
if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
|
|
16832
|
+
`${eventArg} => ((`,
|
|
16466
16833
|
createSimpleExpression(rawExp, false, exp.loc),
|
|
16467
|
-
`).value = $event
|
|
16834
|
+
`).value = $event)`
|
|
16468
16835
|
]);
|
|
16469
|
-
|
|
16470
|
-
|
|
16836
|
+
else {
|
|
16837
|
+
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16838
|
+
assignmentExp = createCompoundExpression([
|
|
16839
|
+
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16840
|
+
createSimpleExpression(rawExp, false, exp.loc),
|
|
16841
|
+
`).value = $event : ${altAssignment})`
|
|
16842
|
+
]);
|
|
16843
|
+
}
|
|
16844
|
+
} else assignmentExp = createCompoundExpression([
|
|
16471
16845
|
`${eventArg} => ((`,
|
|
16472
16846
|
exp,
|
|
16473
16847
|
`) = $event)`
|
|
@@ -16526,11 +16900,12 @@ function parseFilter(node, context) {
|
|
|
16526
16900
|
if (c === 96 && prev !== 92) inTemplateString = false;
|
|
16527
16901
|
} else if (inRegex) {
|
|
16528
16902
|
if (c === 47 && prev !== 92) inRegex = false;
|
|
16529
|
-
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren)
|
|
16530
|
-
|
|
16531
|
-
|
|
16532
|
-
|
|
16533
|
-
|
|
16903
|
+
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
|
|
16904
|
+
if (expression === void 0) {
|
|
16905
|
+
lastFilterIndex = i + 1;
|
|
16906
|
+
expression = exp.slice(0, i).trim();
|
|
16907
|
+
} else pushFilter();
|
|
16908
|
+
} else {
|
|
16534
16909
|
switch (c) {
|
|
16535
16910
|
case 34:
|
|
16536
16911
|
inDouble = true;
|
|
@@ -16556,9 +16931,7 @@ function parseFilter(node, context) {
|
|
|
16556
16931
|
case 123:
|
|
16557
16932
|
curly++;
|
|
16558
16933
|
break;
|
|
16559
|
-
case 125:
|
|
16560
|
-
curly--;
|
|
16561
|
-
break;
|
|
16934
|
+
case 125: curly--;
|
|
16562
16935
|
}
|
|
16563
16936
|
if (c === 47) {
|
|
16564
16937
|
let j = i - 1;
|
|
@@ -16823,9 +17196,7 @@ const transformModel = (dir, node, context) => {
|
|
|
16823
17196
|
isInvalidType = true;
|
|
16824
17197
|
context.onError(createDOMCompilerError(60, dir.loc));
|
|
16825
17198
|
break;
|
|
16826
|
-
default:
|
|
16827
|
-
checkDuplicatedValue();
|
|
16828
|
-
break;
|
|
17199
|
+
default: checkDuplicatedValue();
|
|
16829
17200
|
}
|
|
16830
17201
|
} else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
|
|
16831
17202
|
else checkDuplicatedValue();
|
|
@@ -16838,27 +17209,37 @@ const transformModel = (dir, node, context) => {
|
|
|
16838
17209
|
};
|
|
16839
17210
|
//#endregion
|
|
16840
17211
|
//#region packages/compiler-dom/src/transforms/vOn.ts
|
|
16841
|
-
const isEventOptionModifier =
|
|
16842
|
-
const isNonKeyModifier =
|
|
16843
|
-
const maybeKeyModifier =
|
|
16844
|
-
const isKeyboardEvent =
|
|
17212
|
+
const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
|
|
17213
|
+
const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
|
|
17214
|
+
const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
|
|
17215
|
+
const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
|
|
16845
17216
|
const resolveModifiers = (key, modifiers, context, loc) => {
|
|
16846
17217
|
const keyModifiers = [];
|
|
16847
17218
|
const nonKeyModifiers = [];
|
|
16848
17219
|
const eventOptionModifiers = [];
|
|
16849
17220
|
for (let i = 0; i < modifiers.length; i++) {
|
|
16850
17221
|
const modifier = modifiers[i].content;
|
|
17222
|
+
if (modifier === "delegate") {
|
|
17223
|
+
if (context) {
|
|
17224
|
+
const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
|
|
17225
|
+
error.loc = modifiers[i].loc;
|
|
17226
|
+
context.onWarn(error);
|
|
17227
|
+
}
|
|
17228
|
+
continue;
|
|
17229
|
+
}
|
|
16851
17230
|
if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
|
|
16852
17231
|
else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
|
|
16853
17232
|
else {
|
|
16854
17233
|
const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
|
|
16855
|
-
if (maybeKeyModifier(modifier))
|
|
16856
|
-
|
|
16857
|
-
|
|
16858
|
-
|
|
16859
|
-
|
|
16860
|
-
|
|
16861
|
-
|
|
17234
|
+
if (maybeKeyModifier(modifier)) {
|
|
17235
|
+
if (keyString) {
|
|
17236
|
+
if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
|
|
17237
|
+
else nonKeyModifiers.push(modifier);
|
|
17238
|
+
} else {
|
|
17239
|
+
keyModifiers.push(modifier);
|
|
17240
|
+
nonKeyModifiers.push(modifier);
|
|
17241
|
+
}
|
|
17242
|
+
} else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
|
|
16862
17243
|
else keyModifiers.push(modifier);
|
|
16863
17244
|
}
|
|
16864
17245
|
}
|
|
@@ -17028,7 +17409,7 @@ const dataAriaRE = /^(?:data|aria)-/;
|
|
|
17028
17409
|
const isStringifiableAttr = (name, ns) => {
|
|
17029
17410
|
return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
|
|
17030
17411
|
};
|
|
17031
|
-
const isNonStringifiable =
|
|
17412
|
+
const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
|
|
17032
17413
|
/**
|
|
17033
17414
|
* for a cached node, analyze it and return:
|
|
17034
17415
|
* - false: bailed (contains non-stringifiable props or runtime constant)
|
|
@@ -17099,10 +17480,11 @@ function stringifyElement(node, context) {
|
|
|
17099
17480
|
res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
|
|
17100
17481
|
continue;
|
|
17101
17482
|
}
|
|
17102
|
-
if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
|
|
17483
|
+
if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
|
|
17103
17484
|
let evaluated = evaluateConstant(exp);
|
|
17104
17485
|
if (evaluated != null) {
|
|
17105
17486
|
const arg = p.arg && p.arg.content;
|
|
17487
|
+
if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
|
|
17106
17488
|
if (arg === "class") evaluated = normalizeClass(evaluated);
|
|
17107
17489
|
else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
|
|
17108
17490
|
res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
|
|
@@ -17164,7 +17546,7 @@ function isValidHTMLNesting(parent, child) {
|
|
|
17164
17546
|
}
|
|
17165
17547
|
return true;
|
|
17166
17548
|
}
|
|
17167
|
-
const headings = new Set([
|
|
17549
|
+
const headings = /* @__PURE__ */ new Set([
|
|
17168
17550
|
"h1",
|
|
17169
17551
|
"h2",
|
|
17170
17552
|
"h3",
|
|
@@ -17176,7 +17558,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
|
|
|
17176
17558
|
/**
|
|
17177
17559
|
* maps element to set of elements that can be it's children, no other */
|
|
17178
17560
|
const onlyValidChildren = {
|
|
17179
|
-
head: new Set([
|
|
17561
|
+
head: /* @__PURE__ */ new Set([
|
|
17180
17562
|
"base",
|
|
17181
17563
|
"basefront",
|
|
17182
17564
|
"bgsound",
|
|
@@ -17189,24 +17571,24 @@ const onlyValidChildren = {
|
|
|
17189
17571
|
"script",
|
|
17190
17572
|
"template"
|
|
17191
17573
|
]),
|
|
17192
|
-
optgroup: new Set(["option"]),
|
|
17193
|
-
select: new Set([
|
|
17574
|
+
optgroup: /* @__PURE__ */ new Set(["option"]),
|
|
17575
|
+
select: /* @__PURE__ */ new Set([
|
|
17194
17576
|
"optgroup",
|
|
17195
17577
|
"option",
|
|
17196
17578
|
"hr"
|
|
17197
17579
|
]),
|
|
17198
|
-
table: new Set([
|
|
17580
|
+
table: /* @__PURE__ */ new Set([
|
|
17199
17581
|
"caption",
|
|
17200
17582
|
"colgroup",
|
|
17201
17583
|
"tbody",
|
|
17202
17584
|
"tfoot",
|
|
17203
17585
|
"thead"
|
|
17204
17586
|
]),
|
|
17205
|
-
tr: new Set(["td", "th"]),
|
|
17206
|
-
colgroup: new Set(["col"]),
|
|
17207
|
-
tbody: new Set(["tr"]),
|
|
17208
|
-
thead: new Set(["tr"]),
|
|
17209
|
-
tfoot: new Set(["tr"]),
|
|
17587
|
+
tr: /* @__PURE__ */ new Set(["td", "th"]),
|
|
17588
|
+
colgroup: /* @__PURE__ */ new Set(["col"]),
|
|
17589
|
+
tbody: /* @__PURE__ */ new Set(["tr"]),
|
|
17590
|
+
thead: /* @__PURE__ */ new Set(["tr"]),
|
|
17591
|
+
tfoot: /* @__PURE__ */ new Set(["tr"]),
|
|
17210
17592
|
script: emptySet,
|
|
17211
17593
|
iframe: emptySet,
|
|
17212
17594
|
option: emptySet,
|
|
@@ -17217,30 +17599,30 @@ const onlyValidChildren = {
|
|
|
17217
17599
|
/** maps elements to set of elements which can be it's parent, no other */
|
|
17218
17600
|
const onlyValidParents = {
|
|
17219
17601
|
html: emptySet,
|
|
17220
|
-
body: new Set(["html"]),
|
|
17221
|
-
head: new Set(["html"]),
|
|
17222
|
-
td: new Set(["tr"]),
|
|
17223
|
-
colgroup: new Set(["table"]),
|
|
17224
|
-
caption: new Set(["table"]),
|
|
17225
|
-
tbody: new Set(["table"]),
|
|
17226
|
-
tfoot: new Set(["table"]),
|
|
17227
|
-
col: new Set(["colgroup"]),
|
|
17228
|
-
th: new Set(["tr"]),
|
|
17229
|
-
thead: new Set(["table"]),
|
|
17230
|
-
tr: new Set([
|
|
17602
|
+
body: /* @__PURE__ */ new Set(["html"]),
|
|
17603
|
+
head: /* @__PURE__ */ new Set(["html"]),
|
|
17604
|
+
td: /* @__PURE__ */ new Set(["tr"]),
|
|
17605
|
+
colgroup: /* @__PURE__ */ new Set(["table"]),
|
|
17606
|
+
caption: /* @__PURE__ */ new Set(["table"]),
|
|
17607
|
+
tbody: /* @__PURE__ */ new Set(["table"]),
|
|
17608
|
+
tfoot: /* @__PURE__ */ new Set(["table"]),
|
|
17609
|
+
col: /* @__PURE__ */ new Set(["colgroup"]),
|
|
17610
|
+
th: /* @__PURE__ */ new Set(["tr"]),
|
|
17611
|
+
thead: /* @__PURE__ */ new Set(["table"]),
|
|
17612
|
+
tr: /* @__PURE__ */ new Set([
|
|
17231
17613
|
"tbody",
|
|
17232
17614
|
"thead",
|
|
17233
17615
|
"tfoot"
|
|
17234
17616
|
]),
|
|
17235
|
-
dd: new Set(["dl", "div"]),
|
|
17236
|
-
dt: new Set(["dl", "div"]),
|
|
17237
|
-
figcaption: new Set(["figure"]),
|
|
17238
|
-
summary: new Set(["details"]),
|
|
17239
|
-
area: new Set(["map"])
|
|
17617
|
+
dd: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17618
|
+
dt: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17619
|
+
figcaption: /* @__PURE__ */ new Set(["figure"]),
|
|
17620
|
+
summary: /* @__PURE__ */ new Set(["details"]),
|
|
17621
|
+
area: /* @__PURE__ */ new Set(["map"])
|
|
17240
17622
|
};
|
|
17241
17623
|
/** maps element to set of elements that can not be it's children, others can */
|
|
17242
17624
|
const knownInvalidChildren = {
|
|
17243
|
-
p: new Set([
|
|
17625
|
+
p: /* @__PURE__ */ new Set([
|
|
17244
17626
|
"address",
|
|
17245
17627
|
"article",
|
|
17246
17628
|
"aside",
|
|
@@ -17275,7 +17657,7 @@ const knownInvalidChildren = {
|
|
|
17275
17657
|
"table",
|
|
17276
17658
|
"ul"
|
|
17277
17659
|
]),
|
|
17278
|
-
svg: new Set([
|
|
17660
|
+
svg: /* @__PURE__ */ new Set([
|
|
17279
17661
|
"b",
|
|
17280
17662
|
"blockquote",
|
|
17281
17663
|
"br",
|
|
@@ -17316,12 +17698,12 @@ const knownInvalidChildren = {
|
|
|
17316
17698
|
};
|
|
17317
17699
|
/** maps element to set of elements that can not be it's parent, others can */
|
|
17318
17700
|
const knownInvalidParents = {
|
|
17319
|
-
a: new Set(["a"]),
|
|
17320
|
-
button: new Set(["button"]),
|
|
17321
|
-
dd: new Set(["dd", "dt"]),
|
|
17322
|
-
dt: new Set(["dd", "dt"]),
|
|
17323
|
-
form: new Set(["form"]),
|
|
17324
|
-
li: new Set(["li"]),
|
|
17701
|
+
a: /* @__PURE__ */ new Set(["a"]),
|
|
17702
|
+
button: /* @__PURE__ */ new Set(["button"]),
|
|
17703
|
+
dd: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17704
|
+
dt: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17705
|
+
form: /* @__PURE__ */ new Set(["form"]),
|
|
17706
|
+
li: /* @__PURE__ */ new Set(["li"]),
|
|
17325
17707
|
h1: headings,
|
|
17326
17708
|
h2: headings,
|
|
17327
17709
|
h3: headings,
|
|
@@ -17364,10 +17746,12 @@ function compile(src, options = {}) {
|
|
|
17364
17746
|
//#region packages/vue-compat/src/index.ts
|
|
17365
17747
|
const compileCache = Object.create(null);
|
|
17366
17748
|
function compileToFunction(template, options) {
|
|
17367
|
-
if (!isString(template))
|
|
17368
|
-
|
|
17369
|
-
|
|
17370
|
-
|
|
17749
|
+
if (!isString(template)) {
|
|
17750
|
+
if (template.nodeType) template = template.innerHTML;
|
|
17751
|
+
else {
|
|
17752
|
+
warn(`invalid template option: `, template);
|
|
17753
|
+
return NOOP;
|
|
17754
|
+
}
|
|
17371
17755
|
}
|
|
17372
17756
|
const key = genCacheKey(template, options);
|
|
17373
17757
|
const cached = compileCache[key];
|