@vue/compat 3.6.0-rc.4 → 3.6.0-rc.6
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 +691 -681
- package/dist/vue.cjs.js +999 -753
- package/dist/vue.cjs.prod.js +822 -637
- package/dist/vue.esm-browser.js +901 -672
- package/dist/vue.esm-browser.prod.js +7 -7
- package/dist/vue.esm-bundler.js +928 -689
- package/dist/vue.global.js +901 -672
- package/dist/vue.global.prod.js +7 -7
- package/dist/vue.runtime.esm-browser.js +901 -672
- package/dist/vue.runtime.esm-browser.prod.js +7 -7
- package/dist/vue.runtime.esm-bundler.js +928 -689
- package/dist/vue.runtime.global.js +901 -672
- package/dist/vue.runtime.global.prod.js +7 -7
- package/package.json +2 -2
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.6
|
|
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;
|
|
@@ -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
|
*/
|
|
@@ -413,6 +413,21 @@ function looseCompareArrays(a, b) {
|
|
|
413
413
|
for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
|
|
414
414
|
return equal;
|
|
415
415
|
}
|
|
416
|
+
function looseCompareCollections(a, b) {
|
|
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])) {
|
|
423
|
+
index = i;
|
|
424
|
+
break;
|
|
425
|
+
}
|
|
426
|
+
if (index < 0) return false;
|
|
427
|
+
matched[index] = 1;
|
|
428
|
+
}
|
|
429
|
+
return true;
|
|
430
|
+
}
|
|
416
431
|
function looseEqual(a, b) {
|
|
417
432
|
if (a === b) return true;
|
|
418
433
|
let aValidType = isDate(a);
|
|
@@ -428,6 +443,12 @@ function looseEqual(a, b) {
|
|
|
428
443
|
bValidType = isObject(b);
|
|
429
444
|
if (aValidType || bValidType) {
|
|
430
445
|
if (!aValidType || !bValidType) return false;
|
|
446
|
+
aValidType = isMap(a);
|
|
447
|
+
bValidType = isMap(b);
|
|
448
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b) : false;
|
|
449
|
+
aValidType = isSet(a);
|
|
450
|
+
bValidType = isSet(b);
|
|
451
|
+
if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b) : false;
|
|
431
452
|
if (Object.keys(a).length !== Object.keys(b).length) return false;
|
|
432
453
|
for (const key in a) {
|
|
433
454
|
const aHasKey = a.hasOwnProperty(key);
|
|
@@ -874,9 +895,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
|
|
|
874
895
|
if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
|
|
875
896
|
}
|
|
876
897
|
break;
|
|
877
|
-
case "set":
|
|
878
|
-
if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
879
|
-
break;
|
|
898
|
+
case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
|
|
880
899
|
}
|
|
881
900
|
}
|
|
882
901
|
}
|
|
@@ -1073,8 +1092,8 @@ function noTracking(self, method, args = []) {
|
|
|
1073
1092
|
}
|
|
1074
1093
|
//#endregion
|
|
1075
1094
|
//#region packages/reactivity/src/baseHandlers.ts
|
|
1076
|
-
const isNonTrackableKeys =
|
|
1077
|
-
const builtInSymbols = new Set(
|
|
1095
|
+
const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
|
|
1096
|
+
const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
|
|
1078
1097
|
function hasOwnProperty(key) {
|
|
1079
1098
|
if (!isSymbol(key)) key = String(key);
|
|
1080
1099
|
const obj = /* @__PURE__ */ toRaw(this);
|
|
@@ -1129,12 +1148,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1129
1148
|
oldValue = /* @__PURE__ */ toRaw(oldValue);
|
|
1130
1149
|
value = /* @__PURE__ */ toRaw(value);
|
|
1131
1150
|
}
|
|
1132
|
-
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value))
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1151
|
+
if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
|
|
1152
|
+
if (isOldValueReadonly) {
|
|
1153
|
+
warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
|
|
1154
|
+
return true;
|
|
1155
|
+
} else {
|
|
1156
|
+
oldValue.value = value;
|
|
1157
|
+
return true;
|
|
1158
|
+
}
|
|
1138
1159
|
}
|
|
1139
1160
|
}
|
|
1140
1161
|
const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
|
|
@@ -1175,10 +1196,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
|
|
|
1175
1196
|
return true;
|
|
1176
1197
|
}
|
|
1177
1198
|
};
|
|
1178
|
-
const mutableHandlers =
|
|
1179
|
-
const readonlyHandlers =
|
|
1180
|
-
const shallowReactiveHandlers =
|
|
1181
|
-
const shallowReadonlyHandlers =
|
|
1199
|
+
const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
|
|
1200
|
+
const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
|
|
1201
|
+
const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
|
|
1202
|
+
const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
|
|
1182
1203
|
//#endregion
|
|
1183
1204
|
//#region packages/reactivity/src/collectionHandlers.ts
|
|
1184
1205
|
const toShallow = (value) => value;
|
|
@@ -1329,10 +1350,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
|
|
|
1329
1350
|
return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
|
|
1330
1351
|
};
|
|
1331
1352
|
}
|
|
1332
|
-
const mutableCollectionHandlers = { get:
|
|
1333
|
-
const shallowCollectionHandlers = { get:
|
|
1334
|
-
const readonlyCollectionHandlers = { get:
|
|
1335
|
-
const shallowReadonlyCollectionHandlers = { get:
|
|
1353
|
+
const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
|
|
1354
|
+
const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
|
|
1355
|
+
const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
|
|
1356
|
+
const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
|
|
1336
1357
|
function checkIdentityKeys(target, has, key) {
|
|
1337
1358
|
const rawKey = /* @__PURE__ */ toRaw(key);
|
|
1338
1359
|
if (rawKey !== key && has.call(target, rawKey)) {
|
|
@@ -1357,7 +1378,7 @@ function targetTypeMap(rawType) {
|
|
|
1357
1378
|
default: return 0;
|
|
1358
1379
|
}
|
|
1359
1380
|
}
|
|
1360
|
-
|
|
1381
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1361
1382
|
function reactive(target) {
|
|
1362
1383
|
if (/* @__PURE__ */ isReadonly(target)) return target;
|
|
1363
1384
|
return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
|
|
@@ -1392,7 +1413,7 @@ function reactive(target) {
|
|
|
1392
1413
|
* @param target - The source object.
|
|
1393
1414
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
|
|
1394
1415
|
*/
|
|
1395
|
-
|
|
1416
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1396
1417
|
function shallowReactive(target) {
|
|
1397
1418
|
return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
|
|
1398
1419
|
}
|
|
@@ -1425,7 +1446,7 @@ function shallowReactive(target) {
|
|
|
1425
1446
|
* @param target - The source object.
|
|
1426
1447
|
* @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
|
|
1427
1448
|
*/
|
|
1428
|
-
|
|
1449
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1429
1450
|
function readonly(target) {
|
|
1430
1451
|
return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
|
|
1431
1452
|
}
|
|
@@ -1459,7 +1480,7 @@ function readonly(target) {
|
|
|
1459
1480
|
* @param target - The source object.
|
|
1460
1481
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
|
|
1461
1482
|
*/
|
|
1462
|
-
|
|
1483
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1463
1484
|
function shallowReadonly(target) {
|
|
1464
1485
|
return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
|
|
1465
1486
|
}
|
|
@@ -1496,7 +1517,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
|
|
|
1496
1517
|
* @param value - The value to check.
|
|
1497
1518
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
|
|
1498
1519
|
*/
|
|
1499
|
-
|
|
1520
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1500
1521
|
function isReactive(value) {
|
|
1501
1522
|
if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
|
|
1502
1523
|
return !!(value && value["__v_isReactive"]);
|
|
@@ -1512,11 +1533,11 @@ function isReactive(value) {
|
|
|
1512
1533
|
* @param value - The value to check.
|
|
1513
1534
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
|
|
1514
1535
|
*/
|
|
1515
|
-
|
|
1536
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1516
1537
|
function isReadonly(value) {
|
|
1517
1538
|
return !!(value && value["__v_isReadonly"]);
|
|
1518
1539
|
}
|
|
1519
|
-
|
|
1540
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1520
1541
|
function isShallow(value) {
|
|
1521
1542
|
return !!(value && value["__v_isShallow"]);
|
|
1522
1543
|
}
|
|
@@ -1527,7 +1548,7 @@ function isShallow(value) {
|
|
|
1527
1548
|
* @param value - The value to check.
|
|
1528
1549
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
|
|
1529
1550
|
*/
|
|
1530
|
-
|
|
1551
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1531
1552
|
function isProxy(value) {
|
|
1532
1553
|
return value ? !!value["__v_raw"] : false;
|
|
1533
1554
|
}
|
|
@@ -1554,7 +1575,7 @@ function isProxy(value) {
|
|
|
1554
1575
|
* @param observed - The object for which the "raw" value is requested.
|
|
1555
1576
|
* @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
|
|
1556
1577
|
*/
|
|
1557
|
-
|
|
1578
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1558
1579
|
function toRaw(observed) {
|
|
1559
1580
|
const raw = observed && observed["__v_raw"];
|
|
1560
1581
|
return raw ? /* @__PURE__ */ toRaw(raw) : observed;
|
|
@@ -1603,15 +1624,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
|
|
|
1603
1624
|
const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
|
|
1604
1625
|
//#endregion
|
|
1605
1626
|
//#region packages/reactivity/src/ref.ts
|
|
1606
|
-
|
|
1627
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1607
1628
|
function isRef(r) {
|
|
1608
1629
|
return r ? r["__v_isRef"] === true : false;
|
|
1609
1630
|
}
|
|
1610
|
-
|
|
1631
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1611
1632
|
function ref(value) {
|
|
1612
1633
|
return createRef(value, toReactive);
|
|
1613
1634
|
}
|
|
1614
|
-
|
|
1635
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1615
1636
|
function shallowRef(value) {
|
|
1616
1637
|
return createRef(value);
|
|
1617
1638
|
}
|
|
@@ -1814,7 +1835,7 @@ function customRef(factory) {
|
|
|
1814
1835
|
* @param object - Reactive object to be made into an object of linked refs.
|
|
1815
1836
|
* @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
|
|
1816
1837
|
*/
|
|
1817
|
-
|
|
1838
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1818
1839
|
function toRefs(object) {
|
|
1819
1840
|
const ret = isArray(object) ? new Array(object.length) : {};
|
|
1820
1841
|
for (const key in object) ret[key] = propertyToRef(object, key);
|
|
@@ -1865,7 +1886,7 @@ var GetterRefImpl = class {
|
|
|
1865
1886
|
return this._value = this._getter();
|
|
1866
1887
|
}
|
|
1867
1888
|
};
|
|
1868
|
-
|
|
1889
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
1869
1890
|
function toRef(source, key, defaultValue) {
|
|
1870
1891
|
if (/* @__PURE__ */ isRef(source)) return source;
|
|
1871
1892
|
else if (isFunction(source)) return new GetterRefImpl(source);
|
|
@@ -1931,10 +1952,12 @@ var ReactiveEffect = class {
|
|
|
1931
1952
|
get dirty() {
|
|
1932
1953
|
const flags = this.flags;
|
|
1933
1954
|
if (flags & 16) return true;
|
|
1934
|
-
if (flags & 32)
|
|
1935
|
-
this.
|
|
1936
|
-
|
|
1937
|
-
|
|
1955
|
+
if (flags & 32) {
|
|
1956
|
+
if (checkDirty(this.deps, this)) {
|
|
1957
|
+
this.flags = flags | 16;
|
|
1958
|
+
return true;
|
|
1959
|
+
} else this.flags = flags & -33;
|
|
1960
|
+
}
|
|
1938
1961
|
return false;
|
|
1939
1962
|
}
|
|
1940
1963
|
};
|
|
@@ -2113,10 +2136,12 @@ var ComputedRefImpl = class {
|
|
|
2113
2136
|
get _dirty() {
|
|
2114
2137
|
const flags = this.flags;
|
|
2115
2138
|
if (flags & 16) return true;
|
|
2116
|
-
if (flags & 32)
|
|
2117
|
-
this.
|
|
2118
|
-
|
|
2119
|
-
|
|
2139
|
+
if (flags & 32) {
|
|
2140
|
+
if (checkDirty(this.deps, this)) {
|
|
2141
|
+
this.flags = flags | 16;
|
|
2142
|
+
return true;
|
|
2143
|
+
} else this.flags = flags & -33;
|
|
2144
|
+
}
|
|
2120
2145
|
return false;
|
|
2121
2146
|
}
|
|
2122
2147
|
/**
|
|
@@ -2177,7 +2202,7 @@ var ComputedRefImpl = class {
|
|
|
2177
2202
|
}
|
|
2178
2203
|
};
|
|
2179
2204
|
setupOnTrigger(ComputedRefImpl);
|
|
2180
|
-
|
|
2205
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
2181
2206
|
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
|
|
2182
2207
|
let getter;
|
|
2183
2208
|
let setter;
|
|
@@ -2255,25 +2280,26 @@ var WatcherEffect = class extends ReactiveEffect {
|
|
|
2255
2280
|
else if (isFunction(s)) return call ? call(s, 2) : s();
|
|
2256
2281
|
else warnInvalidSource(s, onWarn);
|
|
2257
2282
|
});
|
|
2258
|
-
} else if (isFunction(source))
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2283
|
+
} else if (isFunction(source)) {
|
|
2284
|
+
if (cb) getter = call ? () => call(source, 2) : source;
|
|
2285
|
+
else getter = () => {
|
|
2286
|
+
if (this.cleanupsLength) {
|
|
2287
|
+
const prevSub = setActiveSub();
|
|
2288
|
+
try {
|
|
2289
|
+
cleanup(this);
|
|
2290
|
+
} finally {
|
|
2291
|
+
setActiveSub(prevSub);
|
|
2292
|
+
}
|
|
2293
|
+
}
|
|
2294
|
+
const currentEffect = activeWatcher;
|
|
2295
|
+
activeWatcher = this;
|
|
2262
2296
|
try {
|
|
2263
|
-
|
|
2297
|
+
return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
|
|
2264
2298
|
} finally {
|
|
2265
|
-
|
|
2299
|
+
activeWatcher = currentEffect;
|
|
2266
2300
|
}
|
|
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 {
|
|
2301
|
+
};
|
|
2302
|
+
} else {
|
|
2277
2303
|
getter = NOOP;
|
|
2278
2304
|
warnInvalidSource(source, onWarn);
|
|
2279
2305
|
}
|
|
@@ -2597,7 +2623,7 @@ let currentFlushPromise = null;
|
|
|
2597
2623
|
let jobsLength = 0;
|
|
2598
2624
|
let flushIndex = 0;
|
|
2599
2625
|
let postFlushIndex = 0;
|
|
2600
|
-
const resolvedPromise =
|
|
2626
|
+
const resolvedPromise = /*@__PURE__*/ Promise.resolve();
|
|
2601
2627
|
const RECURSION_LIMIT = 100;
|
|
2602
2628
|
function nextTick(fn) {
|
|
2603
2629
|
const p = currentFlushPromise || resolvedPromise;
|
|
@@ -2636,6 +2662,7 @@ const doFlushJobs = () => {
|
|
|
2636
2662
|
flushJobs();
|
|
2637
2663
|
} catch (e) {
|
|
2638
2664
|
currentFlushPromise = null;
|
|
2665
|
+
if (jobsLength || postJobs.length) queueFlush();
|
|
2639
2666
|
throw e;
|
|
2640
2667
|
}
|
|
2641
2668
|
};
|
|
@@ -2643,9 +2670,10 @@ function queueFlush() {
|
|
|
2643
2670
|
if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
|
|
2644
2671
|
}
|
|
2645
2672
|
function queuePostFlushCb(jobs, id = Infinity) {
|
|
2646
|
-
if (!isArray(jobs))
|
|
2647
|
-
|
|
2648
|
-
|
|
2673
|
+
if (!isArray(jobs)) {
|
|
2674
|
+
if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
|
|
2675
|
+
else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
|
|
2676
|
+
} else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
|
|
2649
2677
|
queueFlush();
|
|
2650
2678
|
}
|
|
2651
2679
|
function flushPreFlushCbs(instance, seen) {
|
|
@@ -2659,8 +2687,11 @@ function flushPreFlushCbs(instance, seen) {
|
|
|
2659
2687
|
i--;
|
|
2660
2688
|
jobsLength--;
|
|
2661
2689
|
if (cb.flags & 2) cb.flags &= -2;
|
|
2662
|
-
|
|
2663
|
-
|
|
2690
|
+
try {
|
|
2691
|
+
cb();
|
|
2692
|
+
} finally {
|
|
2693
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2694
|
+
}
|
|
2664
2695
|
}
|
|
2665
2696
|
}
|
|
2666
2697
|
function flushPostFlushCbs(seen) {
|
|
@@ -2673,18 +2704,22 @@ function flushPostFlushCbs(seen) {
|
|
|
2673
2704
|
activePostJobs = postJobs;
|
|
2674
2705
|
postJobs = [];
|
|
2675
2706
|
seen = seen || /* @__PURE__ */ new Map();
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
cb
|
|
2682
|
-
|
|
2683
|
-
|
|
2707
|
+
try {
|
|
2708
|
+
while (postFlushIndex < activePostJobs.length) {
|
|
2709
|
+
const cb = activePostJobs[postFlushIndex++];
|
|
2710
|
+
if (checkRecursiveUpdates(seen, cb)) continue;
|
|
2711
|
+
if (cb.flags & 2) cb.flags &= -2;
|
|
2712
|
+
if (!(cb.flags & 4)) try {
|
|
2713
|
+
cb();
|
|
2714
|
+
} finally {
|
|
2715
|
+
if (!(cb.flags & 2)) cb.flags &= -2;
|
|
2716
|
+
}
|
|
2684
2717
|
}
|
|
2718
|
+
} finally {
|
|
2719
|
+
while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
|
|
2720
|
+
activePostJobs = null;
|
|
2721
|
+
postFlushIndex = 0;
|
|
2685
2722
|
}
|
|
2686
|
-
activePostJobs = null;
|
|
2687
|
-
postFlushIndex = 0;
|
|
2688
2723
|
}
|
|
2689
2724
|
}
|
|
2690
2725
|
let isFlushing = false;
|
|
@@ -2694,9 +2729,12 @@ let isFlushing = false;
|
|
|
2694
2729
|
function flushOnAppMount(instance) {
|
|
2695
2730
|
if (!isFlushing) {
|
|
2696
2731
|
isFlushing = true;
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2732
|
+
try {
|
|
2733
|
+
flushPreFlushCbs(instance);
|
|
2734
|
+
flushPostFlushCbs();
|
|
2735
|
+
} finally {
|
|
2736
|
+
isFlushing = false;
|
|
2737
|
+
}
|
|
2700
2738
|
}
|
|
2701
2739
|
}
|
|
2702
2740
|
function flushJobs(seen) {
|
|
@@ -2726,8 +2764,8 @@ function flushJobs(seen) {
|
|
|
2726
2764
|
jobsLength = 0;
|
|
2727
2765
|
jobs.length = 0;
|
|
2728
2766
|
flushPostFlushCbs(seen);
|
|
2729
|
-
currentFlushPromise = null;
|
|
2730
2767
|
if (jobsLength || postJobs.length) flushJobs(seen);
|
|
2768
|
+
else currentFlushPromise = null;
|
|
2731
2769
|
}
|
|
2732
2770
|
}
|
|
2733
2771
|
function checkRecursiveUpdates(seen, fn) {
|
|
@@ -2758,6 +2796,19 @@ getGlobalThis().__VUE_HMR_RUNTIME__ = {
|
|
|
2758
2796
|
rerender: tryWrap(rerender),
|
|
2759
2797
|
reload: tryWrap(reload)
|
|
2760
2798
|
};
|
|
2799
|
+
function runWithHmrUpdating(fn) {
|
|
2800
|
+
isHmrUpdating = true;
|
|
2801
|
+
let done = false;
|
|
2802
|
+
try {
|
|
2803
|
+
fn();
|
|
2804
|
+
done = true;
|
|
2805
|
+
} finally {
|
|
2806
|
+
if (done) nextTick(() => {
|
|
2807
|
+
isHmrUpdating = false;
|
|
2808
|
+
});
|
|
2809
|
+
else isHmrUpdating = false;
|
|
2810
|
+
}
|
|
2811
|
+
}
|
|
2761
2812
|
const map = /* @__PURE__ */ new Map();
|
|
2762
2813
|
function registerHMR(instance) {
|
|
2763
2814
|
const id = instance.type.__hmrId;
|
|
@@ -2799,18 +2850,16 @@ function rerender(id, newRender) {
|
|
|
2799
2850
|
instance.render = newRender;
|
|
2800
2851
|
normalizeClassComponent(instance.type).render = newRender;
|
|
2801
2852
|
}
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2853
|
+
runWithHmrUpdating(() => {
|
|
2854
|
+
if (instance.vapor) {
|
|
2855
|
+
if (!instance.isUnmounted) instance.hmrRerender();
|
|
2856
|
+
} else {
|
|
2857
|
+
const i = instance;
|
|
2858
|
+
if (!(i.effect.flags & 1024)) {
|
|
2859
|
+
i.renderCache = [];
|
|
2860
|
+
i.effect.run();
|
|
2861
|
+
}
|
|
2810
2862
|
}
|
|
2811
|
-
}
|
|
2812
|
-
nextTick(() => {
|
|
2813
|
-
isHmrUpdating = false;
|
|
2814
2863
|
});
|
|
2815
2864
|
});
|
|
2816
2865
|
}
|
|
@@ -2825,15 +2874,17 @@ function reload(id, newComp) {
|
|
|
2825
2874
|
for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
|
|
2826
2875
|
const dirtyInstances = new Set(instances);
|
|
2827
2876
|
const rerenderedParents = /* @__PURE__ */ new Set();
|
|
2828
|
-
|
|
2829
|
-
const
|
|
2830
|
-
|
|
2831
|
-
if (
|
|
2832
|
-
rerenderedParents.
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
|
|
2877
|
+
runWithHmrUpdating(() => {
|
|
2878
|
+
for (const instance of instances) {
|
|
2879
|
+
const parent = instance.parent;
|
|
2880
|
+
if (parent) {
|
|
2881
|
+
if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
|
|
2882
|
+
rerenderedParents.add(parent);
|
|
2883
|
+
parent.hmrRerender();
|
|
2884
|
+
}
|
|
2885
|
+
} else instance.hmrReload(newComp);
|
|
2886
|
+
}
|
|
2887
|
+
});
|
|
2837
2888
|
} else {
|
|
2838
2889
|
const parentUpdates = /* @__PURE__ */ new Map();
|
|
2839
2890
|
const dirtyInstanceSet = new Set(instances);
|
|
@@ -2867,21 +2918,22 @@ function reload(id, newComp) {
|
|
|
2867
2918
|
}
|
|
2868
2919
|
parentUpdates.forEach((updates, parent) => {
|
|
2869
2920
|
queueJob(() => {
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2921
|
+
try {
|
|
2922
|
+
runWithHmrUpdating(() => {
|
|
2923
|
+
if (parent.vapor) parent.hmrRerender();
|
|
2924
|
+
else {
|
|
2925
|
+
const i = parent;
|
|
2926
|
+
if (!(i.effect.flags & 1024)) {
|
|
2927
|
+
i.renderCache = [];
|
|
2928
|
+
i.effect.run();
|
|
2929
|
+
}
|
|
2930
|
+
}
|
|
2931
|
+
});
|
|
2932
|
+
} finally {
|
|
2933
|
+
updates.forEach(([instance, dirtyInstances]) => {
|
|
2934
|
+
dirtyInstances.delete(instance);
|
|
2935
|
+
});
|
|
2878
2936
|
}
|
|
2879
|
-
nextTick(() => {
|
|
2880
|
-
isHmrUpdating = false;
|
|
2881
|
-
});
|
|
2882
|
-
updates.forEach(([instance, dirtyInstances]) => {
|
|
2883
|
-
dirtyInstances.delete(instance);
|
|
2884
|
-
});
|
|
2885
2937
|
});
|
|
2886
2938
|
});
|
|
2887
2939
|
}
|
|
@@ -2950,20 +3002,20 @@ function devtoolsInitApp(app, version) {
|
|
|
2950
3002
|
function devtoolsUnmountApp(app) {
|
|
2951
3003
|
emit$2("app:unmount", app);
|
|
2952
3004
|
}
|
|
2953
|
-
const devtoolsComponentAdded =
|
|
2954
|
-
const devtoolsComponentUpdated =
|
|
2955
|
-
const _devtoolsComponentRemoved =
|
|
3005
|
+
const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
|
|
3006
|
+
const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
|
|
3007
|
+
const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
|
|
2956
3008
|
const devtoolsComponentRemoved = (component) => {
|
|
2957
3009
|
if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
|
|
2958
3010
|
};
|
|
2959
|
-
|
|
3011
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
2960
3012
|
function createDevtoolsComponentHook(hook) {
|
|
2961
3013
|
return (component) => {
|
|
2962
3014
|
emit$2(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
|
|
2963
3015
|
};
|
|
2964
3016
|
}
|
|
2965
|
-
const devtoolsPerfStart =
|
|
2966
|
-
const devtoolsPerfEnd =
|
|
3017
|
+
const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
|
|
3018
|
+
const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
|
|
2967
3019
|
function createDevtoolsPerformanceHook(hook) {
|
|
2968
3020
|
return (component, type, time) => {
|
|
2969
3021
|
emit$2(hook, component.appContext.app, component.uid, component, type, time);
|
|
@@ -3192,7 +3244,7 @@ function configureCompat(config) {
|
|
|
3192
3244
|
validateCompatConfig(config);
|
|
3193
3245
|
extend(globalCompatConfig, config);
|
|
3194
3246
|
}
|
|
3195
|
-
const seenConfigObjects =
|
|
3247
|
+
const seenConfigObjects = /*@__PURE__*/ new WeakSet();
|
|
3196
3248
|
const warnedInvalidKeys = {};
|
|
3197
3249
|
function validateCompatConfig(config, instance) {
|
|
3198
3250
|
if (seenConfigObjects.has(config)) return;
|
|
@@ -3244,7 +3296,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
|
|
|
3244
3296
|
}
|
|
3245
3297
|
//#endregion
|
|
3246
3298
|
//#region packages/runtime-core/src/compat/instanceEventEmitter.ts
|
|
3247
|
-
const eventRegistryMap =
|
|
3299
|
+
const eventRegistryMap = /*@__PURE__*/ new WeakMap();
|
|
3248
3300
|
function getRegistry(instance) {
|
|
3249
3301
|
let events = eventRegistryMap.get(instance);
|
|
3250
3302
|
if (!events) eventRegistryMap.set(instance, events = Object.create(null));
|
|
@@ -3378,19 +3430,21 @@ const legacyDirectiveHookMap = {
|
|
|
3378
3430
|
};
|
|
3379
3431
|
function mapCompatDirectiveHook(name, dir, instance) {
|
|
3380
3432
|
const mappedName = legacyDirectiveHookMap[name];
|
|
3381
|
-
if (mappedName)
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3433
|
+
if (mappedName) {
|
|
3434
|
+
if (isArray(mappedName)) {
|
|
3435
|
+
const hook = [];
|
|
3436
|
+
mappedName.forEach((mapped) => {
|
|
3437
|
+
const mappedHook = dir[mapped];
|
|
3438
|
+
if (mappedHook) {
|
|
3439
|
+
softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
|
|
3440
|
+
hook.push(mappedHook);
|
|
3441
|
+
}
|
|
3442
|
+
});
|
|
3443
|
+
return hook.length ? hook : void 0;
|
|
3444
|
+
} else {
|
|
3445
|
+
if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
|
|
3446
|
+
return dir[mappedName];
|
|
3447
|
+
}
|
|
3394
3448
|
}
|
|
3395
3449
|
}
|
|
3396
3450
|
//#endregion
|
|
@@ -3597,15 +3651,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
|
|
|
3597
3651
|
const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
|
|
3598
3652
|
const resolveTarget = (props, select) => {
|
|
3599
3653
|
const targetSelector = props && props.to;
|
|
3600
|
-
if (isString(targetSelector))
|
|
3601
|
-
|
|
3602
|
-
|
|
3654
|
+
if (isString(targetSelector)) {
|
|
3655
|
+
if (!select) {
|
|
3656
|
+
warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
|
|
3657
|
+
return null;
|
|
3658
|
+
} else {
|
|
3659
|
+
const target = select(targetSelector);
|
|
3660
|
+
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.`);
|
|
3661
|
+
return target;
|
|
3662
|
+
}
|
|
3603
3663
|
} 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
3664
|
if (!targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
|
|
3610
3665
|
return targetSelector;
|
|
3611
3666
|
}
|
|
@@ -3643,7 +3698,8 @@ const TeleportImpl = {
|
|
|
3643
3698
|
if (pendingMounts.get(vnode) !== mountJob) return;
|
|
3644
3699
|
pendingMounts.delete(vnode);
|
|
3645
3700
|
if (isTeleportDisabled(vnode.props)) {
|
|
3646
|
-
|
|
3701
|
+
const mountContainer = parentNode(vnode.el) || container;
|
|
3702
|
+
mount(vnode, mountContainer, vnode.anchor);
|
|
3647
3703
|
updateCssVars(vnode, true);
|
|
3648
3704
|
}
|
|
3649
3705
|
mountToTarget(vnode);
|
|
@@ -3752,15 +3808,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
|
|
|
3752
3808
|
const disabled = isTeleportDisabled(vnode.props);
|
|
3753
3809
|
if (target) {
|
|
3754
3810
|
const targetNode = target._lpa || target.firstChild;
|
|
3755
|
-
if (vnode.shapeFlag & 16)
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3811
|
+
if (vnode.shapeFlag & 16) {
|
|
3812
|
+
if (disabled) {
|
|
3813
|
+
hydrateDisabledTeleport(node, vnode);
|
|
3814
|
+
hydrateAnchor(target, targetNode);
|
|
3815
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
|
|
3816
|
+
} else {
|
|
3817
|
+
vnode.anchor = nextSibling(node);
|
|
3818
|
+
hydrateAnchor(target, targetNode);
|
|
3819
|
+
if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
|
|
3820
|
+
hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
3821
|
+
}
|
|
3764
3822
|
}
|
|
3765
3823
|
updateCssVars(vnode, disabled);
|
|
3766
3824
|
} else if (disabled) {
|
|
@@ -3927,8 +3985,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3927
3985
|
persisted,
|
|
3928
3986
|
beforeEnter(el) {
|
|
3929
3987
|
let hook = onBeforeEnter;
|
|
3930
|
-
if (!state.isMounted)
|
|
3931
|
-
|
|
3988
|
+
if (!state.isMounted) {
|
|
3989
|
+
if (appear) hook = onBeforeAppear || onBeforeEnter;
|
|
3990
|
+
else return;
|
|
3991
|
+
}
|
|
3932
3992
|
if (el[leaveCbKey]) el[leaveCbKey](true);
|
|
3933
3993
|
earlyRemove();
|
|
3934
3994
|
callHook(hook, [el]);
|
|
@@ -3938,11 +3998,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3938
3998
|
let hook = onEnter;
|
|
3939
3999
|
let afterHook = onAfterEnter;
|
|
3940
4000
|
let cancelHook = onEnterCancelled;
|
|
3941
|
-
if (!state.isMounted)
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
4001
|
+
if (!state.isMounted) {
|
|
4002
|
+
if (appear) {
|
|
4003
|
+
hook = onAppear || onEnter;
|
|
4004
|
+
afterHook = onAfterAppear || onAfterEnter;
|
|
4005
|
+
cancelHook = onAppearCancelled || onEnterCancelled;
|
|
4006
|
+
} else return;
|
|
4007
|
+
}
|
|
3946
4008
|
let called = false;
|
|
3947
4009
|
el[enterCbKey$1] = (cancelled) => {
|
|
3948
4010
|
if (called) return;
|
|
@@ -4108,9 +4170,9 @@ function checkTransitionMode(mode) {
|
|
|
4108
4170
|
}
|
|
4109
4171
|
//#endregion
|
|
4110
4172
|
//#region packages/runtime-core/src/apiDefineComponent.ts
|
|
4111
|
-
|
|
4173
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
4112
4174
|
function defineComponent(options, extraOptions) {
|
|
4113
|
-
return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
|
|
4175
|
+
return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
|
|
4114
4176
|
}
|
|
4115
4177
|
//#endregion
|
|
4116
4178
|
//#region packages/runtime-core/src/helpers/useId.ts
|
|
@@ -4207,15 +4269,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
|
|
|
4207
4269
|
if (rawRef.f) {
|
|
4208
4270
|
const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
|
|
4209
4271
|
if (isUnmount) isArray(existing) && remove(existing, refValue);
|
|
4210
|
-
else if (!isArray(existing))
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4272
|
+
else if (!isArray(existing)) {
|
|
4273
|
+
if (_isString) {
|
|
4274
|
+
refs[ref] = [refValue];
|
|
4275
|
+
if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
|
|
4276
|
+
} else {
|
|
4277
|
+
const newVal = [refValue];
|
|
4278
|
+
if (canSetRef(ref, rawRef.k)) ref.value = newVal;
|
|
4279
|
+
if (rawRef.k) refs[rawRef.k] = newVal;
|
|
4280
|
+
}
|
|
4281
|
+
} else if (!existing.includes(refValue)) existing.push(refValue);
|
|
4219
4282
|
} else if (_isString) {
|
|
4220
4283
|
refs[ref] = value;
|
|
4221
4284
|
if (canSetSetupRef(ref)) setupState[ref] = value;
|
|
@@ -4267,7 +4330,18 @@ const logMismatchError = () => {
|
|
|
4267
4330
|
hasLoggedMismatchError = true;
|
|
4268
4331
|
};
|
|
4269
4332
|
const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
|
|
4270
|
-
const isMathMLContainer = (container) =>
|
|
4333
|
+
const isMathMLContainer = (container) => {
|
|
4334
|
+
if (!container.namespaceURI.includes("MathML")) return false;
|
|
4335
|
+
if (container.tagName !== "annotation-xml") return true;
|
|
4336
|
+
const encoding = container.getAttribute("encoding");
|
|
4337
|
+
return !encoding || !encoding.includes("html");
|
|
4338
|
+
};
|
|
4339
|
+
/**
|
|
4340
|
+
* Resolve the element namespace a container's children should be created in.
|
|
4341
|
+
* The live DOM is the source of truth, so this also covers containers that are
|
|
4342
|
+
* only known at runtime (interop boundaries, teleport targets).
|
|
4343
|
+
* @internal
|
|
4344
|
+
*/
|
|
4271
4345
|
const getContainerType = (container) => {
|
|
4272
4346
|
if (container.nodeType !== 1) return void 0;
|
|
4273
4347
|
if (isSVGContainer(container)) return "svg";
|
|
@@ -4305,11 +4379,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4305
4379
|
let nextNode = null;
|
|
4306
4380
|
switch (type) {
|
|
4307
4381
|
case Text:
|
|
4308
|
-
if (domType !== 3)
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4382
|
+
if (domType !== 3) {
|
|
4383
|
+
if (vnode.children === "") {
|
|
4384
|
+
insert(vnode.el = createText(""), parentNode(node), node);
|
|
4385
|
+
nextNode = node;
|
|
4386
|
+
} else nextNode = onMismatch();
|
|
4387
|
+
} else {
|
|
4313
4388
|
if (node.data !== vnode.children) {
|
|
4314
4389
|
warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
|
|
4315
4390
|
logMismatchError();
|
|
@@ -4346,11 +4421,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4346
4421
|
else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4347
4422
|
break;
|
|
4348
4423
|
case VaporSlot:
|
|
4349
|
-
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
|
|
4424
|
+
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
|
|
4350
4425
|
break;
|
|
4351
|
-
default: if (shapeFlag & 1)
|
|
4352
|
-
|
|
4353
|
-
|
|
4426
|
+
default: if (shapeFlag & 1) {
|
|
4427
|
+
if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
|
|
4428
|
+
else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
|
|
4429
|
+
} else if (shapeFlag & 6) {
|
|
4354
4430
|
vnode.slotScopeIds = slotScopeIds;
|
|
4355
4431
|
const container = parentNode(node);
|
|
4356
4432
|
if (isFragmentStart) nextNode = locateClosingAnchor(node);
|
|
@@ -4372,19 +4448,20 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4372
4448
|
} else {
|
|
4373
4449
|
mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
|
|
4374
4450
|
const component = vnode.component;
|
|
4375
|
-
if (isAsyncWrapper(vnode)
|
|
4451
|
+
if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep && !component.asyncResolved)) {
|
|
4376
4452
|
let subTree;
|
|
4377
4453
|
if (isFragmentStart) {
|
|
4378
|
-
subTree = createVNode(
|
|
4454
|
+
subTree = createVNode(Static);
|
|
4379
4455
|
subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
|
|
4380
4456
|
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
|
|
4381
4457
|
subTree.el = node;
|
|
4382
4458
|
component.subTree = subTree;
|
|
4383
4459
|
}
|
|
4384
4460
|
}
|
|
4385
|
-
} else if (shapeFlag & 64)
|
|
4386
|
-
|
|
4387
|
-
|
|
4461
|
+
} else if (shapeFlag & 64) {
|
|
4462
|
+
if (domType !== 8) nextNode = onMismatch();
|
|
4463
|
+
else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
|
|
4464
|
+
} else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
|
|
4388
4465
|
else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
|
|
4389
4466
|
}
|
|
4390
4467
|
if (ref != null) setRef(ref, null, parentSuspense, vnode);
|
|
@@ -4513,7 +4590,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4513
4590
|
const container = parentNode(node);
|
|
4514
4591
|
remove(node);
|
|
4515
4592
|
patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
|
|
4516
|
-
if (parentComponent) {
|
|
4593
|
+
if (parentComponent && parentComponent.vnode) {
|
|
4517
4594
|
parentComponent.vnode.el = vnode.el;
|
|
4518
4595
|
updateHOCHostEl(parentComponent, vnode.el);
|
|
4519
4596
|
}
|
|
@@ -4525,8 +4602,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4525
4602
|
node = nextSibling(node);
|
|
4526
4603
|
if (node && isComment(node)) {
|
|
4527
4604
|
if (node.data === open) match++;
|
|
4528
|
-
if (node.data === close)
|
|
4529
|
-
|
|
4605
|
+
if (node.data === close) {
|
|
4606
|
+
if (match === 0) return nextSibling(node);
|
|
4607
|
+
else match--;
|
|
4608
|
+
}
|
|
4530
4609
|
}
|
|
4531
4610
|
}
|
|
4532
4611
|
return node;
|
|
@@ -4536,7 +4615,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4536
4615
|
if (parentNode) parentNode.replaceChild(newNode, oldNode);
|
|
4537
4616
|
let parent = parentComponent;
|
|
4538
4617
|
while (parent) {
|
|
4539
|
-
if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
4618
|
+
if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
|
|
4540
4619
|
parent = parent.parent;
|
|
4541
4620
|
}
|
|
4542
4621
|
};
|
|
@@ -4548,7 +4627,7 @@ const isTemplateNode$1 = (node) => {
|
|
|
4548
4627
|
/**
|
|
4549
4628
|
* Dev only
|
|
4550
4629
|
*/
|
|
4551
|
-
const resourceProps =
|
|
4630
|
+
const resourceProps = /*@__PURE__*/ new Set([
|
|
4552
4631
|
"src",
|
|
4553
4632
|
"srcset",
|
|
4554
4633
|
"href",
|
|
@@ -4790,7 +4869,7 @@ function forEachElement(node, cb) {
|
|
|
4790
4869
|
//#endregion
|
|
4791
4870
|
//#region packages/runtime-core/src/apiAsyncComponent.ts
|
|
4792
4871
|
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
|
|
4793
|
-
|
|
4872
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
4794
4873
|
function defineAsyncComponent(source) {
|
|
4795
4874
|
const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
|
|
4796
4875
|
return /* @__PURE__ */ defineComponent({
|
|
@@ -5009,10 +5088,13 @@ const KeepAliveImpl = {
|
|
|
5009
5088
|
});
|
|
5010
5089
|
let pendingCacheKey = null;
|
|
5011
5090
|
const cacheSubtree = () => {
|
|
5012
|
-
if (pendingCacheKey != null)
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5091
|
+
if (pendingCacheKey != null) {
|
|
5092
|
+
if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
|
|
5093
|
+
const vnode = getInnerChild(keepAliveInstance.subTree);
|
|
5094
|
+
if (vnode.component) cache.set(pendingCacheKey, vnode);
|
|
5095
|
+
}, void 0, keepAliveInstance.subTree.suspense);
|
|
5096
|
+
else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
|
|
5097
|
+
}
|
|
5016
5098
|
};
|
|
5017
5099
|
onMounted(cacheSubtree);
|
|
5018
5100
|
onUpdated(cacheSubtree);
|
|
@@ -5083,7 +5165,7 @@ const decorate$2 = (t) => {
|
|
|
5083
5165
|
t.__isBuiltIn = true;
|
|
5084
5166
|
return t;
|
|
5085
5167
|
};
|
|
5086
|
-
const KeepAlive =
|
|
5168
|
+
const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
|
|
5087
5169
|
function matches(pattern, name) {
|
|
5088
5170
|
if (isArray(pattern)) return pattern.some((p) => matches(p, name));
|
|
5089
5171
|
else if (isString(pattern)) return pattern.split(",").includes(name);
|
|
@@ -5299,16 +5381,17 @@ function compatH(type, propsOrChildren, children) {
|
|
|
5299
5381
|
}
|
|
5300
5382
|
const l = arguments.length;
|
|
5301
5383
|
const is2ndArgArrayChildren = isArray(propsOrChildren);
|
|
5302
|
-
if (l === 2 || is2ndArgArrayChildren)
|
|
5303
|
-
if (
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5384
|
+
if (l === 2 || is2ndArgArrayChildren) {
|
|
5385
|
+
if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
|
|
5386
|
+
if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
|
|
5387
|
+
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
|
|
5388
|
+
} else return convertLegacySlots(createVNode(type, null, propsOrChildren));
|
|
5389
|
+
} else {
|
|
5307
5390
|
if (isVNode(children)) children = [children];
|
|
5308
5391
|
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
|
|
5309
5392
|
}
|
|
5310
5393
|
}
|
|
5311
|
-
const skipLegacyRootLevelProps =
|
|
5394
|
+
const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
|
|
5312
5395
|
function convertLegacyProps(legacyProps, type) {
|
|
5313
5396
|
if (!legacyProps) return null;
|
|
5314
5397
|
const converted = {};
|
|
@@ -5320,8 +5403,10 @@ function convertLegacyProps(legacyProps, type) {
|
|
|
5320
5403
|
if (key === "nativeOn") handlerKey += `Native`;
|
|
5321
5404
|
const existing = converted[handlerKey];
|
|
5322
5405
|
const incoming = listeners[event];
|
|
5323
|
-
if (existing !== incoming)
|
|
5324
|
-
|
|
5406
|
+
if (existing !== incoming) {
|
|
5407
|
+
if (existing) converted[handlerKey] = [].concat(existing, incoming);
|
|
5408
|
+
else converted[handlerKey] = incoming;
|
|
5409
|
+
}
|
|
5325
5410
|
}
|
|
5326
5411
|
} else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
|
|
5327
5412
|
if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
|
|
@@ -5420,7 +5505,7 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5420
5505
|
const legacyFn = comp.render;
|
|
5421
5506
|
const Func = (props, ctx) => {
|
|
5422
5507
|
const instance = getCurrentInstance();
|
|
5423
|
-
|
|
5508
|
+
const legacyCtx = {
|
|
5424
5509
|
props,
|
|
5425
5510
|
children: instance.vnode.children || [],
|
|
5426
5511
|
data: instance.vnode.props || {},
|
|
@@ -5440,7 +5525,8 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5440
5525
|
}
|
|
5441
5526
|
return {};
|
|
5442
5527
|
}
|
|
5443
|
-
}
|
|
5528
|
+
};
|
|
5529
|
+
return legacyFn(compatH, legacyCtx);
|
|
5444
5530
|
};
|
|
5445
5531
|
Func.props = comp.props;
|
|
5446
5532
|
Func.displayName = comp.name;
|
|
@@ -5469,23 +5555,25 @@ function renderList(source, renderItem, cache, index) {
|
|
|
5469
5555
|
}
|
|
5470
5556
|
ret = new Array(source.length);
|
|
5471
5557
|
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]);
|
|
5472
|
-
} else if (typeof source === "number")
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
5480
|
-
else {
|
|
5481
|
-
const keys = Object.keys(source);
|
|
5482
|
-
ret = new Array(keys.length);
|
|
5483
|
-
for (let i = 0, l = keys.length; i < l; i++) {
|
|
5484
|
-
const key = keys[i];
|
|
5485
|
-
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
5558
|
+
} else if (typeof source === "number") {
|
|
5559
|
+
if (!Number.isInteger(source) || source < 0) {
|
|
5560
|
+
warn$1(`The v-for range expects a positive integer value but got ${source}.`);
|
|
5561
|
+
ret = [];
|
|
5562
|
+
} else {
|
|
5563
|
+
ret = new Array(source);
|
|
5564
|
+
for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
|
|
5486
5565
|
}
|
|
5487
|
-
}
|
|
5488
|
-
|
|
5566
|
+
} else if (isObject(source)) {
|
|
5567
|
+
if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
5568
|
+
else {
|
|
5569
|
+
const keys = Object.keys(source);
|
|
5570
|
+
ret = new Array(keys.length);
|
|
5571
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
5572
|
+
const key = keys[i];
|
|
5573
|
+
ret[i] = renderItem(source[key], key, i, cached && cached[i]);
|
|
5574
|
+
}
|
|
5575
|
+
}
|
|
5576
|
+
} else ret = [];
|
|
5489
5577
|
if (cache) cache[index] = ret;
|
|
5490
5578
|
return ret;
|
|
5491
5579
|
}
|
|
@@ -5510,14 +5598,27 @@ function createSlots(slots, dynamicSlots) {
|
|
|
5510
5598
|
//#endregion
|
|
5511
5599
|
//#region packages/runtime-core/src/helpers/renderSlot.ts
|
|
5512
5600
|
/**
|
|
5601
|
+
* Links a slot function to its raw vapor slot: a raw vapor slot carries
|
|
5602
|
+
* itself, and the wrapper the interop slots proxy hands out carries the raw
|
|
5603
|
+
* slot it wraps — one lookup answers both "is this a vapor slot" and
|
|
5604
|
+
* "which one". Internal to vapor interop.
|
|
5605
|
+
*/
|
|
5606
|
+
const rawVaporSlotKey = Symbol(`rawVaporSlot`);
|
|
5607
|
+
/**
|
|
5608
|
+
* Marks a compiler-generated slot fallback as VDOM-rendered so the vapor
|
|
5609
|
+
* interop fallback chain renders it through the VDOM renderer. Internal to
|
|
5610
|
+
* vapor interop.
|
|
5611
|
+
*/
|
|
5612
|
+
const vdomSlotFallbackKey = Symbol(`vdomSlotFallback`);
|
|
5613
|
+
/**
|
|
5513
5614
|
* Compiler runtime helper for rendering `<slot/>`
|
|
5514
5615
|
* @private
|
|
5515
5616
|
*/
|
|
5516
5617
|
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
5517
5618
|
if (props == null) props = {};
|
|
5518
5619
|
let slot = slots[name];
|
|
5519
|
-
if (fallback) fallback
|
|
5520
|
-
const vaporSlot = slot &&
|
|
5620
|
+
if (fallback) fallback[vdomSlotFallbackKey] = true;
|
|
5621
|
+
const vaporSlot = slot && slot[rawVaporSlotKey];
|
|
5521
5622
|
if (vaporSlot) {
|
|
5522
5623
|
const ret = (openBlock(), createBlock(VaporSlot, props));
|
|
5523
5624
|
ret.vs = {
|
|
@@ -5625,12 +5726,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
|
|
|
5625
5726
|
function mapKeyToName(slots) {
|
|
5626
5727
|
for (let i = 0; i < slots.length; i++) {
|
|
5627
5728
|
const fn = slots[i];
|
|
5628
|
-
if (fn)
|
|
5629
|
-
|
|
5729
|
+
if (fn) {
|
|
5730
|
+
if (isArray(fn)) mapKeyToName(fn);
|
|
5731
|
+
else fn.name = fn.key || "default";
|
|
5732
|
+
}
|
|
5630
5733
|
}
|
|
5631
5734
|
return slots;
|
|
5632
5735
|
}
|
|
5633
|
-
const staticCacheMap =
|
|
5736
|
+
const staticCacheMap = /*@__PURE__*/ new WeakMap();
|
|
5634
5737
|
function legacyRenderStatic(instance, index) {
|
|
5635
5738
|
let cache = staticCacheMap.get(instance);
|
|
5636
5739
|
if (!cache) staticCacheMap.set(instance, cache = []);
|
|
@@ -5763,11 +5866,38 @@ const getPublicInstance = (i) => {
|
|
|
5763
5866
|
if (isStatefulComponent(i)) return getComponentPublicInstance(i);
|
|
5764
5867
|
return getPublicInstance(i.parent);
|
|
5765
5868
|
};
|
|
5869
|
+
const resolveDevRootEl = (vnode) => {
|
|
5870
|
+
let found = false;
|
|
5871
|
+
while (true) {
|
|
5872
|
+
if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
|
|
5873
|
+
const root = filterSingleRoot(vnode.children);
|
|
5874
|
+
if (!root) return;
|
|
5875
|
+
vnode = root;
|
|
5876
|
+
found = true;
|
|
5877
|
+
continue;
|
|
5878
|
+
}
|
|
5879
|
+
const component = vnode.component;
|
|
5880
|
+
if (component && component.subTree) {
|
|
5881
|
+
vnode = component.subTree;
|
|
5882
|
+
continue;
|
|
5883
|
+
}
|
|
5884
|
+
const suspense = vnode.suspense;
|
|
5885
|
+
if (suspense && suspense.activeBranch) {
|
|
5886
|
+
vnode = suspense.activeBranch;
|
|
5887
|
+
continue;
|
|
5888
|
+
}
|
|
5889
|
+
return found ? vnode.el : void 0;
|
|
5890
|
+
}
|
|
5891
|
+
};
|
|
5892
|
+
const getDevRootFragmentEl = (i) => {
|
|
5893
|
+
const el = i.subTree && resolveDevRootEl(i.subTree);
|
|
5894
|
+
return el === void 0 ? i.vnode.el : el;
|
|
5895
|
+
};
|
|
5766
5896
|
let publicPropertiesMap;
|
|
5767
5897
|
const getPublicPropertiesMap = () => {
|
|
5768
5898
|
if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
|
|
5769
5899
|
$: (i) => i,
|
|
5770
|
-
$el: (i) => i
|
|
5900
|
+
$el: (i) => getDevRootFragmentEl(i),
|
|
5771
5901
|
$data: (i) => i.data,
|
|
5772
5902
|
$props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
|
|
5773
5903
|
$attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
|
|
@@ -5880,7 +6010,7 @@ PublicInstanceProxyHandlers.ownKeys = (target) => {
|
|
|
5880
6010
|
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.");
|
|
5881
6011
|
return Reflect.ownKeys(target);
|
|
5882
6012
|
};
|
|
5883
|
-
const RuntimeCompiledPublicInstanceProxyHandlers =
|
|
6013
|
+
const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
|
|
5884
6014
|
get(target, key) {
|
|
5885
6015
|
if (key === Symbol.unscopables) return;
|
|
5886
6016
|
return PublicInstanceProxyHandlers.get(target, key, target);
|
|
@@ -6065,12 +6195,13 @@ function mergeDefaults(raw, defaults) {
|
|
|
6065
6195
|
for (const key in defaults) {
|
|
6066
6196
|
if (key.startsWith("__skip")) continue;
|
|
6067
6197
|
let opt = props[key];
|
|
6068
|
-
if (opt)
|
|
6069
|
-
|
|
6070
|
-
|
|
6071
|
-
|
|
6072
|
-
|
|
6073
|
-
|
|
6198
|
+
if (opt) {
|
|
6199
|
+
if (isArray(opt) || isFunction(opt)) opt = props[key] = {
|
|
6200
|
+
type: opt,
|
|
6201
|
+
default: defaults[key]
|
|
6202
|
+
};
|
|
6203
|
+
else opt.default = defaults[key];
|
|
6204
|
+
} else if (opt === null) opt = props[key] = { default: defaults[key] };
|
|
6074
6205
|
else warn$1(`props default key "${key}" has no corresponding declaration.`);
|
|
6075
6206
|
if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
|
|
6076
6207
|
}
|
|
@@ -6213,11 +6344,12 @@ function applyOptions(instance) {
|
|
|
6213
6344
|
const opt = computedOptions[key];
|
|
6214
6345
|
const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
|
|
6215
6346
|
if (get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
|
|
6347
|
+
const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
|
|
6348
|
+
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
6349
|
+
};
|
|
6216
6350
|
const c = computed({
|
|
6217
6351
|
get,
|
|
6218
|
-
set
|
|
6219
|
-
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
6220
|
-
}
|
|
6352
|
+
set
|
|
6221
6353
|
});
|
|
6222
6354
|
Object.defineProperty(ctx, key, {
|
|
6223
6355
|
enumerable: true,
|
|
@@ -6277,9 +6409,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
|
|
|
6277
6409
|
for (const key in injectOptions) {
|
|
6278
6410
|
const opt = injectOptions[key];
|
|
6279
6411
|
let injected;
|
|
6280
|
-
if (isObject(opt))
|
|
6281
|
-
|
|
6282
|
-
|
|
6412
|
+
if (isObject(opt)) {
|
|
6413
|
+
if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
|
|
6414
|
+
else injected = inject(opt.from || key);
|
|
6415
|
+
} else injected = inject(opt);
|
|
6283
6416
|
if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
|
|
6284
6417
|
enumerable: true,
|
|
6285
6418
|
configurable: true,
|
|
@@ -6299,7 +6432,8 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6299
6432
|
{
|
|
6300
6433
|
const cur = getCurrentInstance();
|
|
6301
6434
|
const instance = cur && getCurrentScope() === cur.scope ? cur : null;
|
|
6302
|
-
|
|
6435
|
+
const newValue = getter();
|
|
6436
|
+
if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
|
|
6303
6437
|
const baseGetter = getter;
|
|
6304
6438
|
getter = () => {
|
|
6305
6439
|
const val = baseGetter();
|
|
@@ -6312,13 +6446,14 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6312
6446
|
if (isFunction(handler)) watch(getter, handler, options);
|
|
6313
6447
|
else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
|
|
6314
6448
|
} else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
|
|
6315
|
-
else if (isObject(raw))
|
|
6316
|
-
|
|
6317
|
-
|
|
6318
|
-
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6449
|
+
else if (isObject(raw)) {
|
|
6450
|
+
if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
|
|
6451
|
+
else {
|
|
6452
|
+
const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
|
|
6453
|
+
if (isFunction(handler)) watch(getter, handler, extend(raw, options));
|
|
6454
|
+
else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
|
|
6455
|
+
}
|
|
6456
|
+
} else warn$1(`Invalid watch option: "${key}"`, raw);
|
|
6322
6457
|
}
|
|
6323
6458
|
/**
|
|
6324
6459
|
* Resolve merged options and cache it on the component.
|
|
@@ -6332,12 +6467,13 @@ function resolveMergedOptions(instance) {
|
|
|
6332
6467
|
const cached = cache.get(base);
|
|
6333
6468
|
let resolved;
|
|
6334
6469
|
if (cached) resolved = cached;
|
|
6335
|
-
else if (!globalMixins.length && !mixins && !extendsOptions)
|
|
6336
|
-
|
|
6337
|
-
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
|
|
6470
|
+
else if (!globalMixins.length && !mixins && !extendsOptions) {
|
|
6471
|
+
if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
|
|
6472
|
+
resolved = extend({}, base);
|
|
6473
|
+
resolved.parent = instance.parent && instance.parent.proxy;
|
|
6474
|
+
resolved.propsData = instance.vnode.props;
|
|
6475
|
+
} else resolved = base;
|
|
6476
|
+
} else {
|
|
6341
6477
|
resolved = {};
|
|
6342
6478
|
if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
|
|
6343
6479
|
mergeOptions(resolved, base, optionMergeStrategies);
|
|
@@ -6410,7 +6546,7 @@ function mergeObjectOptions(to, from) {
|
|
|
6410
6546
|
}
|
|
6411
6547
|
function mergeEmitsOrPropsOptions(to, from) {
|
|
6412
6548
|
if (to) {
|
|
6413
|
-
if (isArray(to) && isArray(from)) return [
|
|
6549
|
+
if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
|
|
6414
6550
|
return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
|
|
6415
6551
|
} else return from;
|
|
6416
6552
|
}
|
|
@@ -6471,7 +6607,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
6471
6607
|
if (options.el) return vm.$mount(options.el);
|
|
6472
6608
|
else return vm;
|
|
6473
6609
|
}
|
|
6474
|
-
Vue.version = `2.6.14-compat:3.6.0-rc.
|
|
6610
|
+
Vue.version = `2.6.14-compat:3.6.0-rc.6`;
|
|
6475
6611
|
Vue.config = singletonApp.config;
|
|
6476
6612
|
Vue.use = (plugin, ...options) => {
|
|
6477
6613
|
if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
|
|
@@ -6861,8 +6997,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
|
|
|
6861
6997
|
} else warn$1(`Cannot unmount an app that is not mounted.`);
|
|
6862
6998
|
},
|
|
6863
6999
|
provide(key, value) {
|
|
6864
|
-
if (key in context.provides)
|
|
6865
|
-
|
|
7000
|
+
if (key in context.provides) {
|
|
7001
|
+
if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
|
|
7002
|
+
else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
|
|
7003
|
+
}
|
|
6866
7004
|
context.provides[key] = value;
|
|
6867
7005
|
return app;
|
|
6868
7006
|
},
|
|
@@ -7012,12 +7150,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
7012
7150
|
if (instance.isUnmounted) return;
|
|
7013
7151
|
{
|
|
7014
7152
|
const { emitsOptions, propsOptions } = instance;
|
|
7015
|
-
if (emitsOptions)
|
|
7016
|
-
if (!
|
|
7017
|
-
|
|
7018
|
-
|
|
7019
|
-
|
|
7020
|
-
if (
|
|
7153
|
+
if (emitsOptions) {
|
|
7154
|
+
if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
|
|
7155
|
+
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.`);
|
|
7156
|
+
} else {
|
|
7157
|
+
const validator = emitsOptions[event];
|
|
7158
|
+
if (isFunction(validator)) {
|
|
7159
|
+
if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
|
|
7160
|
+
}
|
|
7021
7161
|
}
|
|
7022
7162
|
}
|
|
7023
7163
|
}
|
|
@@ -7027,7 +7167,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
7027
7167
|
const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
|
|
7028
7168
|
if (modifiers) {
|
|
7029
7169
|
if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
|
|
7030
|
-
if (modifiers.number) args =
|
|
7170
|
+
if (modifiers.number) args = args.map(looseToNumber);
|
|
7031
7171
|
}
|
|
7032
7172
|
devtoolsComponentEmit(instance, event, args);
|
|
7033
7173
|
{
|
|
@@ -7222,10 +7362,12 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
7222
7362
|
for (let i = 0; i < children.length; i++) {
|
|
7223
7363
|
const child = children[i];
|
|
7224
7364
|
if (isVNode(child)) {
|
|
7225
|
-
if (child.type !== Comment || child.children === "v-if")
|
|
7226
|
-
|
|
7227
|
-
|
|
7228
|
-
|
|
7365
|
+
if (child.type !== Comment || child.children === "v-if") {
|
|
7366
|
+
if (singleRoot) return;
|
|
7367
|
+
else {
|
|
7368
|
+
singleRoot = child;
|
|
7369
|
+
if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
|
|
7370
|
+
}
|
|
7229
7371
|
}
|
|
7230
7372
|
} else return;
|
|
7231
7373
|
}
|
|
@@ -7370,16 +7512,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7370
7512
|
let key = propsToUpdate[i];
|
|
7371
7513
|
if (isEmitListener(instance.emitsOptions, key)) continue;
|
|
7372
7514
|
const value = rawProps[key];
|
|
7373
|
-
if (options)
|
|
7374
|
-
if (
|
|
7375
|
-
attrs[key]
|
|
7376
|
-
|
|
7515
|
+
if (options) {
|
|
7516
|
+
if (hasOwn(attrs, key)) {
|
|
7517
|
+
if (value !== attrs[key]) {
|
|
7518
|
+
attrs[key] = value;
|
|
7519
|
+
hasAttrsChanged = true;
|
|
7520
|
+
}
|
|
7521
|
+
} else {
|
|
7522
|
+
const camelizedKey = camelize(key);
|
|
7523
|
+
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
7377
7524
|
}
|
|
7378
7525
|
} else {
|
|
7379
|
-
const camelizedKey = camelize(key);
|
|
7380
|
-
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
7381
|
-
}
|
|
7382
|
-
else {
|
|
7383
7526
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7384
7527
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7385
7528
|
if (value !== attrs[key]) {
|
|
@@ -7392,9 +7535,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7392
7535
|
} else {
|
|
7393
7536
|
if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
|
|
7394
7537
|
let kebabKey;
|
|
7395
|
-
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))
|
|
7396
|
-
if (
|
|
7397
|
-
|
|
7538
|
+
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
|
|
7539
|
+
if (options) {
|
|
7540
|
+
if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
|
|
7541
|
+
} else delete props[key];
|
|
7542
|
+
}
|
|
7398
7543
|
if (attrs !== rawCurrentProps) {
|
|
7399
7544
|
for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
|
|
7400
7545
|
delete attrs[key];
|
|
@@ -7415,9 +7560,10 @@ function setFullProps(instance, rawProps, props, attrs) {
|
|
|
7415
7560
|
if (key === "inline-template") continue;
|
|
7416
7561
|
const value = rawProps[key];
|
|
7417
7562
|
let camelKey;
|
|
7418
|
-
if (options && hasOwn(options, camelKey = camelize(key)))
|
|
7419
|
-
|
|
7420
|
-
|
|
7563
|
+
if (options && hasOwn(options, camelKey = camelize(key))) {
|
|
7564
|
+
if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
|
|
7565
|
+
else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
|
|
7566
|
+
} else if (!isEmitListener(instance.emitsOptions, key)) {
|
|
7421
7567
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7422
7568
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7423
7569
|
if (!(key in attrs) || value !== attrs[key]) {
|
|
@@ -7583,7 +7729,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
|
|
|
7583
7729
|
}
|
|
7584
7730
|
if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
|
|
7585
7731
|
}
|
|
7586
|
-
const isSimpleType =
|
|
7732
|
+
const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
|
|
7587
7733
|
/**
|
|
7588
7734
|
* dev only
|
|
7589
7735
|
*/
|
|
@@ -7696,12 +7842,13 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7696
7842
|
let deletionComparisonTarget = EMPTY_OBJ;
|
|
7697
7843
|
if (vnode.shapeFlag & 32) {
|
|
7698
7844
|
const type = children._;
|
|
7699
|
-
if (type)
|
|
7700
|
-
|
|
7701
|
-
|
|
7702
|
-
|
|
7703
|
-
|
|
7704
|
-
|
|
7845
|
+
if (type) {
|
|
7846
|
+
if (isHmrUpdating) {
|
|
7847
|
+
assignSlots(slots, children, optimized);
|
|
7848
|
+
trigger(instance, "set", "$slots");
|
|
7849
|
+
} else if (optimized && type === 1) needDeletionCheck = false;
|
|
7850
|
+
else assignSlots(slots, children, optimized);
|
|
7851
|
+
} else {
|
|
7705
7852
|
needDeletionCheck = !children.$stable;
|
|
7706
7853
|
normalizeObjectSlots(children, slots, instance);
|
|
7707
7854
|
}
|
|
@@ -7719,7 +7866,7 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7719
7866
|
let supported;
|
|
7720
7867
|
let perf;
|
|
7721
7868
|
let cachedNow$1 = 0;
|
|
7722
|
-
const p$1 =
|
|
7869
|
+
const p$1 = /*@__PURE__*/ Promise.resolve();
|
|
7723
7870
|
const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
|
|
7724
7871
|
/**
|
|
7725
7872
|
* @internal
|
|
@@ -7816,7 +7963,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7816
7963
|
processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
7817
7964
|
break;
|
|
7818
7965
|
case VaporSlot:
|
|
7819
|
-
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
|
|
7966
|
+
getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
|
|
7820
7967
|
break;
|
|
7821
7968
|
default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
7822
7969
|
else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
@@ -7935,7 +8082,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7935
8082
|
for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
|
|
7936
8083
|
};
|
|
7937
8084
|
const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
|
|
7938
|
-
for (let i = start; i < children.length; i++)
|
|
8085
|
+
for (let i = start; i < children.length; i++) {
|
|
8086
|
+
const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
|
|
8087
|
+
patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8088
|
+
}
|
|
7939
8089
|
};
|
|
7940
8090
|
const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
7941
8091
|
const el = n2.el = n1.el;
|
|
@@ -7947,6 +8097,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7947
8097
|
let vnodeHook;
|
|
7948
8098
|
parentComponent && toggleRecurse(parentComponent, false);
|
|
7949
8099
|
if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8100
|
+
if (n2.ibu) n2.ibu();
|
|
7950
8101
|
if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
7951
8102
|
parentComponent && toggleRecurse(parentComponent, true);
|
|
7952
8103
|
if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
|
|
@@ -7980,8 +8131,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7980
8131
|
if (n1.children !== n2.children) hostSetElementText(el, n2.children);
|
|
7981
8132
|
}
|
|
7982
8133
|
} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
|
|
7983
|
-
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
|
|
8134
|
+
if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
|
|
7984
8135
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8136
|
+
n2.iu && n2.iu();
|
|
7985
8137
|
dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
7986
8138
|
}, void 0, parentSuspense);
|
|
7987
8139
|
};
|
|
@@ -7989,7 +8141,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7989
8141
|
for (let i = 0; i < newChildren.length; i++) {
|
|
7990
8142
|
const oldVNode = oldChildren[i];
|
|
7991
8143
|
const newVNode = newChildren[i];
|
|
7992
|
-
|
|
8144
|
+
const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
|
|
8145
|
+
patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
|
|
7993
8146
|
}
|
|
7994
8147
|
};
|
|
7995
8148
|
const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
|
|
@@ -8027,41 +8180,46 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8027
8180
|
};
|
|
8028
8181
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
8029
8182
|
n2.slotScopeIds = slotScopeIds;
|
|
8030
|
-
if (n2.type.__vapor)
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
|
|
8183
|
+
if (n2.type.__vapor) {
|
|
8184
|
+
if (n1 == null) {
|
|
8185
|
+
if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
|
|
8186
|
+
else {
|
|
8187
|
+
const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
|
|
8188
|
+
getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
|
|
8189
|
+
if (n2.dirs) {
|
|
8190
|
+
invokeDirectiveHook(n2, null, parentComponent, "created");
|
|
8191
|
+
invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
|
|
8192
|
+
}
|
|
8193
|
+
}, () => {
|
|
8194
|
+
if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
|
|
8195
|
+
});
|
|
8196
|
+
if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
|
|
8197
|
+
const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
|
|
8198
|
+
if (vnodeMountedHook) {
|
|
8199
|
+
const scopedVNode = n2;
|
|
8200
|
+
queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
|
|
8201
|
+
}
|
|
8037
8202
|
}
|
|
8038
|
-
}
|
|
8039
|
-
|
|
8040
|
-
|
|
8041
|
-
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8203
|
+
} else {
|
|
8204
|
+
const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
|
|
8205
|
+
getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
|
|
8206
|
+
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
8207
|
+
}, () => {
|
|
8208
|
+
const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
|
|
8209
|
+
if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
|
|
8210
|
+
if (n2.ibu) n2.ibu();
|
|
8211
|
+
});
|
|
8212
|
+
const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
|
|
8213
|
+
if (shouldUpdate && (vnodeUpdatedHook || n2.dirs || n2.iu)) queuePostRenderEffect(() => {
|
|
8214
|
+
n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
8215
|
+
vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
|
|
8216
|
+
n2.iu && n2.iu();
|
|
8217
|
+
}, void 0, parentSuspense);
|
|
8046
8218
|
}
|
|
8047
|
-
}
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8051
|
-
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
8052
|
-
}, () => {
|
|
8053
|
-
const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
|
|
8054
|
-
if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
|
|
8055
|
-
});
|
|
8056
|
-
const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
|
|
8057
|
-
if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
|
|
8058
|
-
n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
8059
|
-
vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
|
|
8060
|
-
}, void 0, parentSuspense);
|
|
8061
|
-
}
|
|
8062
|
-
else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
8063
|
-
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
8064
|
-
else updateComponent(n1, n2, optimized);
|
|
8219
|
+
} else if (n1 == null) {
|
|
8220
|
+
if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
8221
|
+
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
8222
|
+
} else updateComponent(n1, n2, optimized);
|
|
8065
8223
|
};
|
|
8066
8224
|
const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
|
|
8067
8225
|
const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
|
|
@@ -8105,16 +8263,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8105
8263
|
};
|
|
8106
8264
|
const updateComponent = (n1, n2, optimized) => {
|
|
8107
8265
|
const instance = n2.component = n1.component;
|
|
8108
|
-
if (shouldUpdateComponent(n1, n2, optimized))
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8266
|
+
if (shouldUpdateComponent(n1, n2, optimized)) {
|
|
8267
|
+
if (instance.asyncDep && !instance.asyncResolved) {
|
|
8268
|
+
pushWarningContext(n2);
|
|
8269
|
+
updateComponentPreRender(instance, n2, optimized);
|
|
8270
|
+
popWarningContext();
|
|
8271
|
+
return;
|
|
8272
|
+
} else {
|
|
8273
|
+
instance.next = n2;
|
|
8274
|
+
instance.effect.run();
|
|
8275
|
+
}
|
|
8113
8276
|
} else {
|
|
8114
|
-
instance.next = n2;
|
|
8115
|
-
instance.effect.run();
|
|
8116
|
-
}
|
|
8117
|
-
else {
|
|
8118
8277
|
n2.el = n1.el;
|
|
8119
8278
|
instance.vnode = n2;
|
|
8120
8279
|
}
|
|
@@ -8217,6 +8376,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8217
8376
|
} else next = vnode;
|
|
8218
8377
|
if (bu) invokeArrayFns(bu);
|
|
8219
8378
|
if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
8379
|
+
if (next.ibu) next.ibu();
|
|
8220
8380
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
|
|
8221
8381
|
toggleRecurse(instance, true);
|
|
8222
8382
|
startMeasure(instance, `render`);
|
|
@@ -8230,7 +8390,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8230
8390
|
next.el = nextTree.el;
|
|
8231
8391
|
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
8232
8392
|
if (u) queuePostRenderEffect(u, void 0, parentSuspense);
|
|
8233
|
-
if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() =>
|
|
8393
|
+
if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
|
|
8394
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
8395
|
+
next.iu && next.iu();
|
|
8396
|
+
}, void 0, parentSuspense);
|
|
8234
8397
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
|
|
8235
8398
|
devtoolsComponentUpdated(instance);
|
|
8236
8399
|
popWarningContext();
|
|
@@ -8271,9 +8434,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8271
8434
|
if (shapeFlag & 8) {
|
|
8272
8435
|
if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
|
|
8273
8436
|
if (c2 !== c1) hostSetElementText(container, c2);
|
|
8274
|
-
} else if (prevShapeFlag & 16)
|
|
8275
|
-
|
|
8276
|
-
|
|
8437
|
+
} else if (prevShapeFlag & 16) {
|
|
8438
|
+
if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8439
|
+
else unmountChildren(c1, parentComponent, parentSuspense, true);
|
|
8440
|
+
} else {
|
|
8277
8441
|
if (prevShapeFlag & 8) hostSetElementText(container, "");
|
|
8278
8442
|
if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8279
8443
|
}
|
|
@@ -8372,8 +8536,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8372
8536
|
const anchorVNode = c2[nextIndex + 1];
|
|
8373
8537
|
const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
|
|
8374
8538
|
if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8375
|
-
else if (moved)
|
|
8376
|
-
|
|
8539
|
+
else if (moved) {
|
|
8540
|
+
if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
|
|
8541
|
+
else j--;
|
|
8542
|
+
}
|
|
8377
8543
|
}
|
|
8378
8544
|
}
|
|
8379
8545
|
};
|
|
@@ -8405,26 +8571,27 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8405
8571
|
moveStaticNode(vnode, container, anchor);
|
|
8406
8572
|
return;
|
|
8407
8573
|
}
|
|
8408
|
-
if (moveType !== 2 && shapeFlag & 1 && transition)
|
|
8409
|
-
|
|
8410
|
-
|
|
8411
|
-
|
|
8412
|
-
|
|
8413
|
-
|
|
8414
|
-
|
|
8415
|
-
|
|
8416
|
-
const
|
|
8417
|
-
|
|
8418
|
-
|
|
8419
|
-
|
|
8420
|
-
|
|
8421
|
-
|
|
8422
|
-
|
|
8423
|
-
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
8574
|
+
if (moveType !== 2 && shapeFlag & 1 && transition) {
|
|
8575
|
+
if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
|
|
8576
|
+
else {
|
|
8577
|
+
const { leave, delayLeave, afterLeave } = transition;
|
|
8578
|
+
const remove = () => {
|
|
8579
|
+
if (vnode.ctx.isUnmounted) hostRemove(el);
|
|
8580
|
+
else hostInsert(el, container, anchor);
|
|
8581
|
+
};
|
|
8582
|
+
const performLeave = () => {
|
|
8583
|
+
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
8584
|
+
if (el._isLeaving) el[leaveCbKey](true);
|
|
8585
|
+
if (transition.persisted && !wasLeaving) remove();
|
|
8586
|
+
else leave(el, () => {
|
|
8587
|
+
remove();
|
|
8588
|
+
afterLeave && afterLeave();
|
|
8589
|
+
});
|
|
8590
|
+
};
|
|
8591
|
+
if (delayLeave) delayLeave(el, remove, performLeave);
|
|
8592
|
+
else performLeave();
|
|
8593
|
+
}
|
|
8594
|
+
} else hostInsert(el, container, anchor);
|
|
8428
8595
|
};
|
|
8429
8596
|
const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
|
|
8430
8597
|
const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
|
|
@@ -8444,16 +8611,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8444
8611
|
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
8445
8612
|
let vnodeHook;
|
|
8446
8613
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8447
|
-
if (shapeFlag & 6)
|
|
8448
|
-
if (
|
|
8449
|
-
|
|
8450
|
-
|
|
8451
|
-
|
|
8452
|
-
|
|
8453
|
-
|
|
8454
|
-
|
|
8455
|
-
|
|
8456
|
-
|
|
8614
|
+
if (shapeFlag & 6) {
|
|
8615
|
+
if (isVaporComponent(type)) {
|
|
8616
|
+
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
8617
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
8618
|
+
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
|
|
8619
|
+
dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
|
|
8620
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8621
|
+
}, void 0, parentSuspense);
|
|
8622
|
+
return;
|
|
8623
|
+
} else unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
8624
|
+
} else {
|
|
8457
8625
|
if (shapeFlag & 128) {
|
|
8458
8626
|
vnode.suspense.unmount(parentSuspense, doRemove);
|
|
8459
8627
|
return;
|
|
@@ -8587,12 +8755,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
|
|
|
8587
8755
|
return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
|
|
8588
8756
|
}
|
|
8589
8757
|
function toggleRecurse({ effect, job, vapor }, allowed) {
|
|
8590
|
-
if (!vapor)
|
|
8591
|
-
|
|
8592
|
-
|
|
8593
|
-
|
|
8594
|
-
|
|
8595
|
-
|
|
8758
|
+
if (!vapor) {
|
|
8759
|
+
if (allowed) {
|
|
8760
|
+
effect.flags |= 128;
|
|
8761
|
+
job.flags |= 2;
|
|
8762
|
+
} else {
|
|
8763
|
+
effect.flags &= -129;
|
|
8764
|
+
job.flags &= -3;
|
|
8765
|
+
}
|
|
8596
8766
|
}
|
|
8597
8767
|
}
|
|
8598
8768
|
function needTransition(parentSuspense, transition) {
|
|
@@ -8632,8 +8802,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
8632
8802
|
}
|
|
8633
8803
|
function locateNonHydratedAsyncRoot(instance) {
|
|
8634
8804
|
const subComponent = instance.subTree && instance.subTree.component;
|
|
8635
|
-
if (subComponent)
|
|
8636
|
-
|
|
8805
|
+
if (subComponent) {
|
|
8806
|
+
if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
|
|
8807
|
+
else return locateNonHydratedAsyncRoot(subComponent);
|
|
8808
|
+
}
|
|
8637
8809
|
}
|
|
8638
8810
|
function invalidateMount(hooks) {
|
|
8639
8811
|
if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
|
|
@@ -8677,7 +8849,7 @@ function isVaporComponent(type) {
|
|
|
8677
8849
|
/**
|
|
8678
8850
|
* shared between vdom and vapor
|
|
8679
8851
|
*/
|
|
8680
|
-
function getInheritedScopeIds(vnode, parentComponent) {
|
|
8852
|
+
function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
|
|
8681
8853
|
const inheritedScopeIds = [];
|
|
8682
8854
|
let currentParent = parentComponent;
|
|
8683
8855
|
let currentVNode = vnode;
|
|
@@ -8693,6 +8865,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
|
|
|
8693
8865
|
currentParent = currentParent.parent;
|
|
8694
8866
|
} else break;
|
|
8695
8867
|
}
|
|
8868
|
+
const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
|
|
8869
|
+
if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
|
|
8696
8870
|
return inheritedScopeIds;
|
|
8697
8871
|
}
|
|
8698
8872
|
function resolveAsyncComponentPlaceholder(anchorVnode) {
|
|
@@ -8752,7 +8926,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8752
8926
|
patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8753
8927
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8754
8928
|
else if (isInFallback) {
|
|
8755
|
-
if (!isHydrating) {
|
|
8929
|
+
if (!isHydrating && !suspense.isFallbackMountPending) {
|
|
8756
8930
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8757
8931
|
setActiveBranch(suspense, newFallback);
|
|
8758
8932
|
}
|
|
@@ -8773,7 +8947,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8773
8947
|
if (isInFallback) {
|
|
8774
8948
|
patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8775
8949
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8776
|
-
else {
|
|
8950
|
+
else if (!suspense.isFallbackMountPending) {
|
|
8777
8951
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8778
8952
|
setActiveBranch(suspense, newFallback);
|
|
8779
8953
|
}
|
|
@@ -8899,8 +9073,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8899
9073
|
const mountFallback = () => {
|
|
8900
9074
|
suspense.isFallbackMountPending = false;
|
|
8901
9075
|
if (!suspense.isInFallback) return;
|
|
8902
|
-
|
|
8903
|
-
|
|
9076
|
+
const latestFallback = suspense.vnode.ssFallback;
|
|
9077
|
+
patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
9078
|
+
setActiveBranch(suspense, latestFallback);
|
|
8904
9079
|
};
|
|
8905
9080
|
const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
|
|
8906
9081
|
if (delayEnter) {
|
|
@@ -8976,9 +9151,10 @@ function normalizeSuspenseSlot(s) {
|
|
|
8976
9151
|
return s;
|
|
8977
9152
|
}
|
|
8978
9153
|
function queueEffectWithSuspense(fn, id, suspense) {
|
|
8979
|
-
if (suspense && suspense.pendingBranch)
|
|
8980
|
-
|
|
8981
|
-
|
|
9154
|
+
if (suspense && suspense.pendingBranch) {
|
|
9155
|
+
if (isArray(fn)) suspense.effects.push(...fn);
|
|
9156
|
+
else suspense.effects.push(fn);
|
|
9157
|
+
} else queuePostFlushCb(fn, id);
|
|
8982
9158
|
}
|
|
8983
9159
|
function setActiveBranch(suspense, branch) {
|
|
8984
9160
|
suspense.activeBranch = branch;
|
|
@@ -9214,8 +9390,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
|
|
|
9214
9390
|
if (isVNode(type)) {
|
|
9215
9391
|
const cloned = cloneVNode(type, props, true);
|
|
9216
9392
|
if (children) normalizeChildren(cloned, children);
|
|
9217
|
-
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock)
|
|
9218
|
-
|
|
9393
|
+
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
|
|
9394
|
+
if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
|
|
9395
|
+
else currentBlock.push(cloned);
|
|
9396
|
+
}
|
|
9219
9397
|
cloned.patchFlag = -2;
|
|
9220
9398
|
return cloned;
|
|
9221
9399
|
}
|
|
@@ -9276,7 +9454,9 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
|
|
|
9276
9454
|
ce: vnode.ce,
|
|
9277
9455
|
vi: vnode.vi,
|
|
9278
9456
|
vs: cloneVaporSlotMeta(vnode),
|
|
9279
|
-
vb: vnode.vb
|
|
9457
|
+
vb: vnode.vb,
|
|
9458
|
+
ibu: vnode.ibu,
|
|
9459
|
+
iu: vnode.iu
|
|
9280
9460
|
};
|
|
9281
9461
|
if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
|
|
9282
9462
|
defineLegacyVNodeProperties(cloned);
|
|
@@ -9340,25 +9520,28 @@ function normalizeChildren(vnode, children) {
|
|
|
9340
9520
|
const { shapeFlag } = vnode;
|
|
9341
9521
|
if (children == null) children = null;
|
|
9342
9522
|
else if (isArray(children)) type = 16;
|
|
9343
|
-
else if (typeof children === "object")
|
|
9344
|
-
|
|
9345
|
-
|
|
9346
|
-
|
|
9347
|
-
|
|
9348
|
-
|
|
9349
|
-
|
|
9350
|
-
|
|
9351
|
-
|
|
9352
|
-
|
|
9353
|
-
|
|
9354
|
-
|
|
9355
|
-
|
|
9356
|
-
|
|
9357
|
-
|
|
9358
|
-
|
|
9523
|
+
else if (typeof children === "object") {
|
|
9524
|
+
if (shapeFlag & 65) {
|
|
9525
|
+
const slot = children.default;
|
|
9526
|
+
if (slot) {
|
|
9527
|
+
slot._c && (slot._d = false);
|
|
9528
|
+
normalizeChildren(vnode, slot());
|
|
9529
|
+
slot._c && (slot._d = true);
|
|
9530
|
+
}
|
|
9531
|
+
return;
|
|
9532
|
+
} else {
|
|
9533
|
+
type = 32;
|
|
9534
|
+
const slotFlag = children._;
|
|
9535
|
+
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
9536
|
+
else if (slotFlag === 3 && currentRenderingInstance) {
|
|
9537
|
+
if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
9538
|
+
else {
|
|
9539
|
+
children._ = 2;
|
|
9540
|
+
vnode.patchFlag |= 1024;
|
|
9541
|
+
}
|
|
9542
|
+
}
|
|
9359
9543
|
}
|
|
9360
|
-
}
|
|
9361
|
-
else if (isFunction(children)) {
|
|
9544
|
+
} else if (isFunction(children)) {
|
|
9362
9545
|
if (shapeFlag & 65) {
|
|
9363
9546
|
normalizeChildren(vnode, { default: children });
|
|
9364
9547
|
return;
|
|
@@ -9476,7 +9659,7 @@ const useInstanceOption = (key, silent = false) => {
|
|
|
9476
9659
|
};
|
|
9477
9660
|
//#endregion
|
|
9478
9661
|
//#region packages/runtime-core/src/component.ts
|
|
9479
|
-
const emptyAppContext =
|
|
9662
|
+
const emptyAppContext = /*@__PURE__*/ createAppContext();
|
|
9480
9663
|
let uid = 0;
|
|
9481
9664
|
function createComponentInstance(vnode, parent, suspense) {
|
|
9482
9665
|
const type = vnode.type;
|
|
@@ -9621,9 +9804,10 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9621
9804
|
} else finishComponentSetup(instance, isSSR);
|
|
9622
9805
|
}
|
|
9623
9806
|
function handleSetupResult(instance, setupResult, isSSR) {
|
|
9624
|
-
if (isFunction(setupResult))
|
|
9625
|
-
|
|
9626
|
-
|
|
9807
|
+
if (isFunction(setupResult)) {
|
|
9808
|
+
if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
|
|
9809
|
+
else instance.render = setupResult;
|
|
9810
|
+
} else if (isObject(setupResult)) {
|
|
9627
9811
|
if (isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
|
|
9628
9812
|
instance.devtoolsRawSetupState = setupResult;
|
|
9629
9813
|
instance.setupState = proxyRefs(setupResult);
|
|
@@ -9678,10 +9862,12 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
9678
9862
|
restoreCurrentInstance(prevInstance);
|
|
9679
9863
|
}
|
|
9680
9864
|
}
|
|
9681
|
-
if (!Component.render && instance.render === NOOP && !isSSR)
|
|
9865
|
+
if (!Component.render && instance.render === NOOP && !isSSR) {
|
|
9866
|
+
if (!compile$1 && Component.template)
|
|
9682
9867
|
/* v8 ignore start */
|
|
9683
|
-
|
|
9684
|
-
|
|
9868
|
+
warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
|
|
9869
|
+
else warn$1(`Component is missing template or render function: `, Component);
|
|
9870
|
+
}
|
|
9685
9871
|
}
|
|
9686
9872
|
const attrsProxyHandlers = {
|
|
9687
9873
|
get(target, key) {
|
|
@@ -9789,11 +9975,12 @@ function h(type, propsOrChildren, children) {
|
|
|
9789
9975
|
try {
|
|
9790
9976
|
setBlockTracking(-1);
|
|
9791
9977
|
const l = arguments.length;
|
|
9792
|
-
if (l === 2)
|
|
9793
|
-
if (
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9978
|
+
if (l === 2) {
|
|
9979
|
+
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
|
|
9980
|
+
if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
|
|
9981
|
+
return createVNode(type, propsOrChildren);
|
|
9982
|
+
} else return createVNode(type, null, propsOrChildren);
|
|
9983
|
+
} else {
|
|
9797
9984
|
if (l > 3) children = Array.prototype.slice.call(arguments, 2);
|
|
9798
9985
|
else if (l === 3 && isVNode(children)) children = [children];
|
|
9799
9986
|
return createVNode(type, propsOrChildren, children);
|
|
@@ -9985,7 +10172,7 @@ function isMemoSame(cached, memo) {
|
|
|
9985
10172
|
}
|
|
9986
10173
|
//#endregion
|
|
9987
10174
|
//#region packages/runtime-core/src/index.ts
|
|
9988
|
-
const version = "3.6.0-rc.
|
|
10175
|
+
const version = "3.6.0-rc.6";
|
|
9989
10176
|
const warn = warn$1;
|
|
9990
10177
|
/**
|
|
9991
10178
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -10030,7 +10217,7 @@ const DeprecationTypes = DeprecationTypes$1;
|
|
|
10030
10217
|
let policy = void 0;
|
|
10031
10218
|
const tt = typeof window !== "undefined" && window.trustedTypes;
|
|
10032
10219
|
if (tt) try {
|
|
10033
|
-
policy =
|
|
10220
|
+
policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
|
|
10034
10221
|
} catch (e) {
|
|
10035
10222
|
warn(`Error creating trusted types policy: ${e}`);
|
|
10036
10223
|
}
|
|
@@ -10038,7 +10225,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
|
|
|
10038
10225
|
const svgNS = "http://www.w3.org/2000/svg";
|
|
10039
10226
|
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
|
|
10040
10227
|
const doc = typeof document !== "undefined" ? document : null;
|
|
10041
|
-
const templateContainer = doc &&
|
|
10228
|
+
const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
|
|
10042
10229
|
const nodeOps = {
|
|
10043
10230
|
insert: (child, parent, anchor) => {
|
|
10044
10231
|
parent.insertBefore(child, anchor || null);
|
|
@@ -10112,7 +10299,7 @@ const DOMTransitionPropsValidators = {
|
|
|
10112
10299
|
leaveActiveClass: String,
|
|
10113
10300
|
leaveToClass: String
|
|
10114
10301
|
};
|
|
10115
|
-
const TransitionPropsValidators =
|
|
10302
|
+
const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
|
|
10116
10303
|
/**
|
|
10117
10304
|
* Wrap logic that attaches extra properties to Transition in a function
|
|
10118
10305
|
* so that it can be annotated as pure
|
|
@@ -10127,7 +10314,7 @@ const decorate$1 = (t) => {
|
|
|
10127
10314
|
* DOM Transition is a higher-order-component based on the platform-agnostic
|
|
10128
10315
|
* base Transition component, with DOM-specific logic.
|
|
10129
10316
|
*/
|
|
10130
|
-
const Transition =
|
|
10317
|
+
const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
|
|
10131
10318
|
/**
|
|
10132
10319
|
* #3227 Incoming hooks may be merged into arrays when wrapping Transition
|
|
10133
10320
|
* with custom HOCs.
|
|
@@ -10367,14 +10554,15 @@ const vShow = {
|
|
|
10367
10554
|
},
|
|
10368
10555
|
updated(el, { value, oldValue }, { transition }) {
|
|
10369
10556
|
if (!value === !oldValue) return;
|
|
10370
|
-
if (transition)
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10374
|
-
|
|
10375
|
-
|
|
10376
|
-
|
|
10377
|
-
|
|
10557
|
+
if (transition) {
|
|
10558
|
+
if (value) {
|
|
10559
|
+
transition.beforeEnter(el);
|
|
10560
|
+
setDisplay(el, true);
|
|
10561
|
+
transition.enter(el);
|
|
10562
|
+
} else transition.leave(el, () => {
|
|
10563
|
+
setDisplay(el, false);
|
|
10564
|
+
});
|
|
10565
|
+
} else setDisplay(el, value);
|
|
10378
10566
|
},
|
|
10379
10567
|
beforeUnmount(el, { value }) {
|
|
10380
10568
|
setDisplay(el, value);
|
|
@@ -10405,11 +10593,13 @@ function patchStyle(el, prev, next) {
|
|
|
10405
10593
|
const isCssString = isString(next);
|
|
10406
10594
|
let hasControlledDisplay = false;
|
|
10407
10595
|
if (next && !isCssString) {
|
|
10408
|
-
if (prev)
|
|
10409
|
-
|
|
10410
|
-
|
|
10411
|
-
|
|
10412
|
-
|
|
10596
|
+
if (prev) {
|
|
10597
|
+
if (!isString(prev)) {
|
|
10598
|
+
for (const key in prev) if (next[key] == null) setStyle(style, key, "");
|
|
10599
|
+
} else for (const prevStyle of prev.split(";")) {
|
|
10600
|
+
const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
|
|
10601
|
+
if (next[key] == null) setStyle(style, key, "");
|
|
10602
|
+
}
|
|
10413
10603
|
}
|
|
10414
10604
|
for (const key in next) {
|
|
10415
10605
|
if (key === "display") hasControlledDisplay = true;
|
|
@@ -10438,8 +10628,10 @@ function setStyle(style, name, rawVal) {
|
|
|
10438
10628
|
else {
|
|
10439
10629
|
const val = rawVal == null ? "" : String(rawVal);
|
|
10440
10630
|
if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
|
|
10441
|
-
if (name.startsWith("--"))
|
|
10442
|
-
|
|
10631
|
+
if (name.startsWith("--")) {
|
|
10632
|
+
if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
|
|
10633
|
+
else style.setProperty(name, val);
|
|
10634
|
+
} else {
|
|
10443
10635
|
const prefixed = autoPrefix(style, name);
|
|
10444
10636
|
if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
|
|
10445
10637
|
else style[prefixed] = val;
|
|
@@ -10476,15 +10668,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
|
|
|
10476
10668
|
//#region packages/runtime-dom/src/modules/attrs.ts
|
|
10477
10669
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
10478
10670
|
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
|
|
10479
|
-
if (isSVG && key.startsWith("xlink:"))
|
|
10480
|
-
|
|
10481
|
-
|
|
10671
|
+
if (isSVG && key.startsWith("xlink:")) {
|
|
10672
|
+
if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
|
|
10673
|
+
else el.setAttributeNS(xlinkNS, key, value);
|
|
10674
|
+
} else {
|
|
10482
10675
|
if (compatCoerceAttr(el, key, value, instance)) return;
|
|
10483
10676
|
if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
|
|
10484
10677
|
else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
|
|
10485
10678
|
}
|
|
10486
10679
|
}
|
|
10487
|
-
const isEnumeratedAttr =
|
|
10680
|
+
const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
|
|
10488
10681
|
function compatCoerceAttr(el, key, value, instance = null) {
|
|
10489
10682
|
if (isEnumeratedAttr(key)) {
|
|
10490
10683
|
const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
|
|
@@ -10576,7 +10769,7 @@ function parseEventName(name) {
|
|
|
10576
10769
|
return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
|
|
10577
10770
|
}
|
|
10578
10771
|
let cachedNow = 0;
|
|
10579
|
-
const p =
|
|
10772
|
+
const p = /*@__PURE__*/ Promise.resolve();
|
|
10580
10773
|
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
|
|
10581
10774
|
function createInvoker(initialValue, instance) {
|
|
10582
10775
|
const invoker = (e) => {
|
|
@@ -10644,7 +10837,7 @@ function shouldSetAsPropForVueCE(el, key) {
|
|
|
10644
10837
|
//#endregion
|
|
10645
10838
|
//#region packages/runtime-dom/src/apiCustomElement.ts
|
|
10646
10839
|
const REMOVAL = {};
|
|
10647
|
-
|
|
10840
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
10648
10841
|
function defineCustomElement(options, extraOptions, _createApp) {
|
|
10649
10842
|
let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
|
|
10650
10843
|
if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
|
|
@@ -10693,12 +10886,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10693
10886
|
this._parent = parent;
|
|
10694
10887
|
break;
|
|
10695
10888
|
}
|
|
10696
|
-
if (!this._instance)
|
|
10697
|
-
|
|
10698
|
-
this._pendingResolve =
|
|
10699
|
-
|
|
10700
|
-
|
|
10701
|
-
|
|
10889
|
+
if (!this._instance) {
|
|
10890
|
+
if (this._resolved) this._mountComponent(this._def);
|
|
10891
|
+
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
10892
|
+
this._pendingResolve = void 0;
|
|
10893
|
+
if (this.isConnected) return this._resolveDef();
|
|
10894
|
+
});
|
|
10895
|
+
else this._resolveDef();
|
|
10896
|
+
}
|
|
10702
10897
|
}
|
|
10703
10898
|
disconnectedCallback() {
|
|
10704
10899
|
this._connected = false;
|
|
@@ -11097,7 +11292,7 @@ const decorate = (t) => {
|
|
|
11097
11292
|
};
|
|
11098
11293
|
const TransitionGroup = /* @__PURE__ */ decorate({
|
|
11099
11294
|
name: "TransitionGroup",
|
|
11100
|
-
props:
|
|
11295
|
+
props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
|
|
11101
11296
|
tag: String,
|
|
11102
11297
|
moveClass: String
|
|
11103
11298
|
}),
|
|
@@ -11379,19 +11574,39 @@ const vModelSelectInit = (el, value, number, set) => {
|
|
|
11379
11574
|
el._modelValue = value;
|
|
11380
11575
|
addEventListener(el, "change", () => {
|
|
11381
11576
|
const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
|
|
11382
|
-
|
|
11383
|
-
el.
|
|
11384
|
-
|
|
11385
|
-
|
|
11386
|
-
|
|
11577
|
+
const multiple = el.multiple;
|
|
11578
|
+
const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
|
|
11579
|
+
const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
|
|
11580
|
+
try {
|
|
11581
|
+
(set || el[assignKey])(assignedValue);
|
|
11582
|
+
} finally {
|
|
11583
|
+
nextTick(() => {
|
|
11584
|
+
if (el._pendingValue === pending) el._pendingValue = void 0;
|
|
11585
|
+
});
|
|
11586
|
+
}
|
|
11387
11587
|
});
|
|
11388
11588
|
};
|
|
11589
|
+
function isSameSelectValue(value, assignedValue, multiple) {
|
|
11590
|
+
if (!multiple) return looseEqual(value, assignedValue);
|
|
11591
|
+
if (isArray(value)) return looseEqual(value, assignedValue);
|
|
11592
|
+
if (isSet(value)) {
|
|
11593
|
+
if (value.size !== assignedValue.length) return false;
|
|
11594
|
+
for (const item of assignedValue) if (!value.has(item)) return false;
|
|
11595
|
+
return true;
|
|
11596
|
+
}
|
|
11597
|
+
return false;
|
|
11598
|
+
}
|
|
11389
11599
|
/**
|
|
11390
11600
|
* @internal
|
|
11391
11601
|
*/
|
|
11392
11602
|
const vModelSetSelected = (el, value) => {
|
|
11393
11603
|
el._modelValue = value;
|
|
11394
|
-
|
|
11604
|
+
const pending = el._pendingValue;
|
|
11605
|
+
el._pendingValue = void 0;
|
|
11606
|
+
if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
|
|
11607
|
+
setSelected(el, value);
|
|
11608
|
+
};
|
|
11609
|
+
function setSelected(el, value) {
|
|
11395
11610
|
const isMultiple = el.multiple;
|
|
11396
11611
|
const isArrayValue = isArray(value);
|
|
11397
11612
|
if (isMultiple && !isArrayValue && !isSet(value)) {
|
|
@@ -11401,18 +11616,19 @@ const vModelSetSelected = (el, value) => {
|
|
|
11401
11616
|
for (let i = 0, l = el.options.length; i < l; i++) {
|
|
11402
11617
|
const option = el.options[i];
|
|
11403
11618
|
const optionValue = getValue(option);
|
|
11404
|
-
if (isMultiple)
|
|
11405
|
-
|
|
11406
|
-
|
|
11407
|
-
|
|
11408
|
-
|
|
11409
|
-
|
|
11619
|
+
if (isMultiple) {
|
|
11620
|
+
if (isArrayValue) {
|
|
11621
|
+
const optionType = typeof optionValue;
|
|
11622
|
+
if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
|
|
11623
|
+
else option.selected = looseIndexOf(value, optionValue) > -1;
|
|
11624
|
+
} else option.selected = value.has(optionValue);
|
|
11625
|
+
} else if (looseEqual(getValue(option), value)) {
|
|
11410
11626
|
if (el.selectedIndex !== i) el.selectedIndex = i;
|
|
11411
11627
|
return;
|
|
11412
11628
|
}
|
|
11413
11629
|
}
|
|
11414
11630
|
if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
|
|
11415
|
-
}
|
|
11631
|
+
}
|
|
11416
11632
|
/**
|
|
11417
11633
|
* @internal retrieve raw value set via :value bindings
|
|
11418
11634
|
*/
|
|
@@ -11726,7 +11942,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
11726
11942
|
withModifiers: () => withModifiers,
|
|
11727
11943
|
withScopeId: () => withScopeId
|
|
11728
11944
|
});
|
|
11729
|
-
const rendererOptions =
|
|
11945
|
+
const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
|
|
11730
11946
|
let renderer;
|
|
11731
11947
|
let enabledHydration = false;
|
|
11732
11948
|
function ensureRenderer() {
|
|
@@ -12107,7 +12323,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
|
|
|
12107
12323
|
//#endregion
|
|
12108
12324
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
|
|
12109
12325
|
var _a;
|
|
12110
|
-
const decodeMap = new Map([
|
|
12326
|
+
const decodeMap = /* @__PURE__ */ new Map([
|
|
12111
12327
|
[0, 65533],
|
|
12112
12328
|
[128, 8364],
|
|
12113
12329
|
[130, 8218],
|
|
@@ -12175,7 +12391,7 @@ function decodeBase64(input) {
|
|
|
12175
12391
|
}
|
|
12176
12392
|
//#endregion
|
|
12177
12393
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
|
|
12178
|
-
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");
|
|
12394
|
+
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");
|
|
12179
12395
|
//#endregion
|
|
12180
12396
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
|
|
12181
12397
|
/**
|
|
@@ -12569,7 +12785,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
12569
12785
|
}
|
|
12570
12786
|
return -1;
|
|
12571
12787
|
}
|
|
12572
|
-
const htmlDecoder = /*
|
|
12788
|
+
const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
|
|
12573
12789
|
/**
|
|
12574
12790
|
* Decodes an HTML string.
|
|
12575
12791
|
*
|
|
@@ -12761,13 +12977,14 @@ var Tokenizer = class {
|
|
|
12761
12977
|
}
|
|
12762
12978
|
}
|
|
12763
12979
|
stateInterpolationOpen(c) {
|
|
12764
|
-
if (c === this.delimiterOpen[this.delimiterIndex])
|
|
12765
|
-
|
|
12766
|
-
|
|
12767
|
-
|
|
12768
|
-
|
|
12769
|
-
|
|
12770
|
-
|
|
12980
|
+
if (c === this.delimiterOpen[this.delimiterIndex]) {
|
|
12981
|
+
if (this.delimiterIndex === this.delimiterOpen.length - 1) {
|
|
12982
|
+
const start = this.index + 1 - this.delimiterOpen.length;
|
|
12983
|
+
if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
|
|
12984
|
+
this.state = 3;
|
|
12985
|
+
this.sectionStart = start;
|
|
12986
|
+
} else this.delimiterIndex++;
|
|
12987
|
+
} else if (this.inRCDATA) {
|
|
12771
12988
|
this.state = 32;
|
|
12772
12989
|
this.stateInRCDATA(c);
|
|
12773
12990
|
} else {
|
|
@@ -12783,13 +13000,14 @@ var Tokenizer = class {
|
|
|
12783
13000
|
}
|
|
12784
13001
|
}
|
|
12785
13002
|
stateInterpolationClose(c) {
|
|
12786
|
-
if (c === this.delimiterClose[this.delimiterIndex])
|
|
12787
|
-
|
|
12788
|
-
|
|
12789
|
-
|
|
12790
|
-
|
|
12791
|
-
|
|
12792
|
-
|
|
13003
|
+
if (c === this.delimiterClose[this.delimiterIndex]) {
|
|
13004
|
+
if (this.delimiterIndex === this.delimiterClose.length - 1) {
|
|
13005
|
+
this.cbs.oninterpolation(this.sectionStart, this.index + 1);
|
|
13006
|
+
if (this.inRCDATA) this.state = 32;
|
|
13007
|
+
else this.state = 1;
|
|
13008
|
+
this.sectionStart = this.index + 1;
|
|
13009
|
+
} else this.delimiterIndex++;
|
|
13010
|
+
} else {
|
|
12793
13011
|
this.state = 3;
|
|
12794
13012
|
this.stateInterpolation(c);
|
|
12795
13013
|
}
|
|
@@ -12905,9 +13123,10 @@ var Tokenizer = class {
|
|
|
12905
13123
|
this.sectionStart = this.index;
|
|
12906
13124
|
if (this.mode === 0) this.state = 6;
|
|
12907
13125
|
else if (this.inSFCRoot) this.state = 34;
|
|
12908
|
-
else if (!this.inXML)
|
|
12909
|
-
|
|
12910
|
-
|
|
13126
|
+
else if (!this.inXML) {
|
|
13127
|
+
if (c === 116) this.state = 30;
|
|
13128
|
+
else this.state = c === 115 ? 29 : 6;
|
|
13129
|
+
} else this.state = 6;
|
|
12911
13130
|
} else if (c === 47) this.state = 8;
|
|
12912
13131
|
else {
|
|
12913
13132
|
this.state = 1;
|
|
@@ -13274,9 +13493,7 @@ var Tokenizer = class {
|
|
|
13274
13493
|
case 24:
|
|
13275
13494
|
this.stateInProcessingInstruction(c);
|
|
13276
13495
|
break;
|
|
13277
|
-
case 33:
|
|
13278
|
-
this.stateInEntity();
|
|
13279
|
-
break;
|
|
13496
|
+
case 33: this.stateInEntity();
|
|
13280
13497
|
}
|
|
13281
13498
|
this.index++;
|
|
13282
13499
|
}
|
|
@@ -13309,9 +13526,10 @@ var Tokenizer = class {
|
|
|
13309
13526
|
handleTrailingData() {
|
|
13310
13527
|
const endIndex = this.buffer.length;
|
|
13311
13528
|
if (this.sectionStart >= endIndex) return;
|
|
13312
|
-
if (this.state === 28)
|
|
13313
|
-
|
|
13314
|
-
|
|
13529
|
+
if (this.state === 28) {
|
|
13530
|
+
if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
|
|
13531
|
+
else this.cbs.oncomment(this.sectionStart, endIndex);
|
|
13532
|
+
} 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);
|
|
13315
13533
|
}
|
|
13316
13534
|
emitCodePoint(cp, consumed) {
|
|
13317
13535
|
if (this.baseState !== 1 && this.baseState !== 32) {
|
|
@@ -13472,16 +13690,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
13472
13690
|
const isRefed = isReferencedIdentifier(node, parent, parentStack);
|
|
13473
13691
|
if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
|
|
13474
13692
|
} else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
|
|
13475
|
-
else if (isFunctionType(node))
|
|
13476
|
-
|
|
13477
|
-
|
|
13478
|
-
else
|
|
13479
|
-
|
|
13480
|
-
|
|
13481
|
-
else if (node.type === "
|
|
13482
|
-
|
|
13483
|
-
|
|
13484
|
-
else
|
|
13693
|
+
else if (isFunctionType(node)) {
|
|
13694
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13695
|
+
else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13696
|
+
} else if (node.type === "BlockStatement") {
|
|
13697
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13698
|
+
else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13699
|
+
} else if (node.type === "SwitchStatement") {
|
|
13700
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13701
|
+
else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13702
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
13703
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13704
|
+
else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
|
|
13705
|
+
} else if (isForStatement(node)) {
|
|
13706
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13707
|
+
else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13708
|
+
}
|
|
13485
13709
|
},
|
|
13486
13710
|
leave(node, parent) {
|
|
13487
13711
|
parent && parentStack.pop();
|
|
@@ -13573,9 +13797,7 @@ function extractIdentifiers(param, nodes = []) {
|
|
|
13573
13797
|
case "RestElement":
|
|
13574
13798
|
extractIdentifiers(param.argument, nodes);
|
|
13575
13799
|
break;
|
|
13576
|
-
case "AssignmentPattern":
|
|
13577
|
-
extractIdentifiers(param.left, nodes);
|
|
13578
|
-
break;
|
|
13800
|
+
case "AssignmentPattern": extractIdentifiers(param.left, nodes);
|
|
13579
13801
|
}
|
|
13580
13802
|
return nodes;
|
|
13581
13803
|
}
|
|
@@ -13771,7 +13993,7 @@ function isTemplateNode(node) {
|
|
|
13771
13993
|
function isSlotOutlet(node) {
|
|
13772
13994
|
return node.type === 1 && node.tagType === 2;
|
|
13773
13995
|
}
|
|
13774
|
-
const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13996
|
+
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13775
13997
|
function getUnnormalizedProps(props, callPath = []) {
|
|
13776
13998
|
if (props && !isString(props) && props.type === 14) {
|
|
13777
13999
|
const callee = props.callee;
|
|
@@ -13814,9 +14036,10 @@ function injectProp(node, prop, context) {
|
|
|
13814
14036
|
propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
|
|
13815
14037
|
if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
|
|
13816
14038
|
}
|
|
13817
|
-
if (node.type === 13)
|
|
13818
|
-
|
|
13819
|
-
|
|
14039
|
+
if (node.type === 13) {
|
|
14040
|
+
if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
14041
|
+
else node.props = propsWithInjection;
|
|
14042
|
+
} else if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
13820
14043
|
else node.arguments[2] = propsWithInjection;
|
|
13821
14044
|
}
|
|
13822
14045
|
function injectSlotKey(node, prop) {
|
|
@@ -14056,26 +14279,28 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
14056
14279
|
onattribend(quote, end) {
|
|
14057
14280
|
if (currentOpenTag && currentProp) {
|
|
14058
14281
|
setLocEnd(currentProp.loc, end);
|
|
14059
|
-
if (quote !== 0)
|
|
14060
|
-
if (currentProp.
|
|
14061
|
-
|
|
14062
|
-
|
|
14063
|
-
|
|
14064
|
-
|
|
14065
|
-
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
|
|
14073
|
-
|
|
14074
|
-
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
currentProp.name = "
|
|
14078
|
-
|
|
14282
|
+
if (quote !== 0) {
|
|
14283
|
+
if (currentProp.type === 6) {
|
|
14284
|
+
if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
|
|
14285
|
+
if (quote === 1 && !currentAttrValue) emitError(13, end);
|
|
14286
|
+
currentProp.value = {
|
|
14287
|
+
type: 2,
|
|
14288
|
+
content: currentAttrValue,
|
|
14289
|
+
loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
|
|
14290
|
+
};
|
|
14291
|
+
if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
|
|
14292
|
+
} else {
|
|
14293
|
+
let expParseMode = 0;
|
|
14294
|
+
if (currentProp.name === "for") expParseMode = 3;
|
|
14295
|
+
else if (currentProp.name === "slot") expParseMode = 1;
|
|
14296
|
+
else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
|
|
14297
|
+
currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
|
|
14298
|
+
if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
|
|
14299
|
+
let syncIndex = -1;
|
|
14300
|
+
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)) {
|
|
14301
|
+
currentProp.name = "model";
|
|
14302
|
+
currentProp.modifiers.splice(syncIndex, 1);
|
|
14303
|
+
}
|
|
14079
14304
|
}
|
|
14080
14305
|
}
|
|
14081
14306
|
if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
|
|
@@ -14118,10 +14343,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
14118
14343
|
case 18:
|
|
14119
14344
|
case 19:
|
|
14120
14345
|
case 20:
|
|
14121
|
-
case 21:
|
|
14122
|
-
emitError(9, end);
|
|
14123
|
-
break;
|
|
14124
|
-
default: break;
|
|
14346
|
+
case 21: emitError(9, end);
|
|
14125
14347
|
}
|
|
14126
14348
|
for (let index = 0; index < stack.length; index++) {
|
|
14127
14349
|
onCloseTag(stack[index], end - 1);
|
|
@@ -14267,7 +14489,7 @@ function backTrack(index, c) {
|
|
|
14267
14489
|
while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
|
|
14268
14490
|
return i;
|
|
14269
14491
|
}
|
|
14270
|
-
const specialTemplateDir = new Set([
|
|
14492
|
+
const specialTemplateDir = /* @__PURE__ */ new Set([
|
|
14271
14493
|
"if",
|
|
14272
14494
|
"else",
|
|
14273
14495
|
"else-if",
|
|
@@ -14303,16 +14525,18 @@ function condenseWhitespace(nodes) {
|
|
|
14303
14525
|
let removedWhitespace = false;
|
|
14304
14526
|
for (let i = 0; i < nodes.length; i++) {
|
|
14305
14527
|
const node = nodes[i];
|
|
14306
|
-
if (node.type === 2)
|
|
14307
|
-
if (
|
|
14308
|
-
|
|
14309
|
-
|
|
14310
|
-
|
|
14311
|
-
|
|
14312
|
-
|
|
14313
|
-
|
|
14314
|
-
|
|
14315
|
-
|
|
14528
|
+
if (node.type === 2) {
|
|
14529
|
+
if (!inPre) {
|
|
14530
|
+
if (isAllWhitespace(node.content)) {
|
|
14531
|
+
const prev = nodes[i - 1] && nodes[i - 1].type;
|
|
14532
|
+
const next = nodes[i + 1] && nodes[i + 1].type;
|
|
14533
|
+
if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
|
|
14534
|
+
removedWhitespace = true;
|
|
14535
|
+
nodes[i] = null;
|
|
14536
|
+
} else node.content = " ";
|
|
14537
|
+
} else if (shouldCondense) node.content = condense(node.content);
|
|
14538
|
+
} else node.content = node.content.replace(windowsNewlineRE, "\n");
|
|
14539
|
+
}
|
|
14316
14540
|
}
|
|
14317
14541
|
return removedWhitespace ? nodes.filter(Boolean) : nodes;
|
|
14318
14542
|
}
|
|
@@ -14590,7 +14814,7 @@ function getConstantType(node, context) {
|
|
|
14590
14814
|
default: return 0;
|
|
14591
14815
|
}
|
|
14592
14816
|
}
|
|
14593
|
-
const allowHoistedHelperSet = new Set([
|
|
14817
|
+
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
|
|
14594
14818
|
NORMALIZE_CLASS,
|
|
14595
14819
|
NORMALIZE_STYLE,
|
|
14596
14820
|
NORMALIZE_PROPS,
|
|
@@ -14767,7 +14991,7 @@ function transform(root, options) {
|
|
|
14767
14991
|
traverseNode(root, context);
|
|
14768
14992
|
if (options.hoistStatic) cacheStatic(root, context);
|
|
14769
14993
|
if (!options.ssr) createRootCodegen(root, context);
|
|
14770
|
-
root.helpers = new Set([...context.helpers.keys()]);
|
|
14994
|
+
root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
|
|
14771
14995
|
root.components = [...context.components];
|
|
14772
14996
|
root.directives = [...context.directives];
|
|
14773
14997
|
root.imports = context.imports;
|
|
@@ -14814,8 +15038,10 @@ function traverseNode(node, context) {
|
|
|
14814
15038
|
const exitFns = [];
|
|
14815
15039
|
for (let i = 0; i < nodeTransforms.length; i++) {
|
|
14816
15040
|
const onExit = nodeTransforms[i](node, context);
|
|
14817
|
-
if (onExit)
|
|
14818
|
-
|
|
15041
|
+
if (onExit) {
|
|
15042
|
+
if (isArray(onExit)) exitFns.push(...onExit);
|
|
15043
|
+
else exitFns.push(onExit);
|
|
15044
|
+
}
|
|
14819
15045
|
if (!context.currentNode) return;
|
|
14820
15046
|
else node = context.currentNode;
|
|
14821
15047
|
}
|
|
@@ -14832,9 +15058,7 @@ function traverseNode(node, context) {
|
|
|
14832
15058
|
case 10:
|
|
14833
15059
|
case 11:
|
|
14834
15060
|
case 1:
|
|
14835
|
-
case 0:
|
|
14836
|
-
traverseChildren(node, context);
|
|
14837
|
-
break;
|
|
15061
|
+
case 0: traverseChildren(node, context);
|
|
14838
15062
|
}
|
|
14839
15063
|
context.currentNode = node;
|
|
14840
15064
|
let i = exitFns.length;
|
|
@@ -15020,16 +15244,18 @@ function genFunctionPreamble(ast, context) {
|
|
|
15020
15244
|
const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
|
|
15021
15245
|
const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
|
|
15022
15246
|
const helpers = Array.from(ast.helpers);
|
|
15023
|
-
if (helpers.length > 0)
|
|
15024
|
-
|
|
15025
|
-
|
|
15026
|
-
|
|
15027
|
-
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
|
|
15031
|
-
|
|
15032
|
-
|
|
15247
|
+
if (helpers.length > 0) {
|
|
15248
|
+
if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
|
|
15249
|
+
else {
|
|
15250
|
+
push(`const _Vue = ${VueBinding}\n`, -1);
|
|
15251
|
+
if (ast.hoists.length) push(`const { ${[
|
|
15252
|
+
CREATE_VNODE,
|
|
15253
|
+
CREATE_ELEMENT_VNODE,
|
|
15254
|
+
CREATE_COMMENT,
|
|
15255
|
+
CREATE_TEXT,
|
|
15256
|
+
CREATE_STATIC
|
|
15257
|
+
].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
|
|
15258
|
+
}
|
|
15033
15259
|
}
|
|
15034
15260
|
if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
|
|
15035
15261
|
genHoists(ast.hoists, context);
|
|
@@ -15106,10 +15332,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
|
|
|
15106
15332
|
if (isString(node)) push(node, -3);
|
|
15107
15333
|
else if (isArray(node)) genNodeListAsArray(node, context);
|
|
15108
15334
|
else genNode(node, context);
|
|
15109
|
-
if (i < nodes.length - 1)
|
|
15110
|
-
|
|
15111
|
-
|
|
15112
|
-
|
|
15335
|
+
if (i < nodes.length - 1) {
|
|
15336
|
+
if (multilines) {
|
|
15337
|
+
comma && push(",");
|
|
15338
|
+
newline();
|
|
15339
|
+
} else comma && push(", ");
|
|
15340
|
+
}
|
|
15113
15341
|
}
|
|
15114
15342
|
}
|
|
15115
15343
|
function genNode(node, context) {
|
|
@@ -15231,8 +15459,10 @@ function genVNodeCall(node, context) {
|
|
|
15231
15459
|
const { push, helper, pure } = context;
|
|
15232
15460
|
const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
|
|
15233
15461
|
let patchFlagString;
|
|
15234
|
-
if (patchFlag)
|
|
15235
|
-
|
|
15462
|
+
if (patchFlag) {
|
|
15463
|
+
if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
|
|
15464
|
+
else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
|
|
15465
|
+
}
|
|
15236
15466
|
if (directives) push(helper(WITH_DIRECTIVES) + `(`);
|
|
15237
15467
|
if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
|
|
15238
15468
|
if (pure) push(PURE_ANNOTATION);
|
|
@@ -15428,7 +15658,7 @@ function genReturnStatement({ returns }, context) {
|
|
|
15428
15658
|
}
|
|
15429
15659
|
//#endregion
|
|
15430
15660
|
//#region packages/compiler-core/src/transforms/transformExpression.ts
|
|
15431
|
-
const isLiteralWhitelisted =
|
|
15661
|
+
const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
|
|
15432
15662
|
const transformExpression = (node, context) => {
|
|
15433
15663
|
if (node.type === 5) node.content = processExpression(node.content, context);
|
|
15434
15664
|
else if (node.type === 1) {
|
|
@@ -15461,20 +15691,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15461
15691
|
if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
|
|
15462
15692
|
else if (type === "setup-ref") return `${raw}.value`;
|
|
15463
15693
|
else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
|
|
15464
|
-
else if (type === "setup-let")
|
|
15465
|
-
|
|
15466
|
-
|
|
15467
|
-
|
|
15468
|
-
|
|
15469
|
-
|
|
15470
|
-
|
|
15471
|
-
|
|
15472
|
-
|
|
15473
|
-
|
|
15474
|
-
|
|
15475
|
-
|
|
15476
|
-
|
|
15477
|
-
|
|
15694
|
+
else if (type === "setup-let") {
|
|
15695
|
+
if (isAssignmentLVal) {
|
|
15696
|
+
const { right: rVal, operator } = parent;
|
|
15697
|
+
const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
|
|
15698
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
|
|
15699
|
+
} else if (isUpdateArg) {
|
|
15700
|
+
id.start = parent.start;
|
|
15701
|
+
id.end = parent.end;
|
|
15702
|
+
const { prefix: isPrefix, operator } = parent;
|
|
15703
|
+
const prefix = isPrefix ? operator : ``;
|
|
15704
|
+
const postfix = isPrefix ? `` : operator;
|
|
15705
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
|
|
15706
|
+
} else if (isDestructureAssignment) return raw;
|
|
15707
|
+
else return wrapWithUnref(raw);
|
|
15708
|
+
} else if (type === "props") return genPropsAccessExp(raw);
|
|
15478
15709
|
else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
|
|
15479
15710
|
} else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
|
|
15480
15711
|
else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
|
|
@@ -15491,8 +15722,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15491
15722
|
if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
|
|
15492
15723
|
if (isConst(bindingMetadata[rawExp])) node.constType = 1;
|
|
15493
15724
|
node.content = rewriteIdentifier(rawExp);
|
|
15494
|
-
} else if (!isScopeVarReference)
|
|
15495
|
-
|
|
15725
|
+
} else if (!isScopeVarReference) {
|
|
15726
|
+
if (isLiteral) node.constType = 3;
|
|
15727
|
+
else node.constType = 2;
|
|
15728
|
+
}
|
|
15496
15729
|
return node;
|
|
15497
15730
|
}
|
|
15498
15731
|
if (!ast) {
|
|
@@ -15651,16 +15884,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
|
|
|
15651
15884
|
const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
|
|
15652
15885
|
const { children } = branch;
|
|
15653
15886
|
const firstChild = children[0];
|
|
15654
|
-
if (children.length !== 1 || firstChild.type !== 1)
|
|
15655
|
-
|
|
15656
|
-
|
|
15657
|
-
|
|
15887
|
+
if (children.length !== 1 || firstChild.type !== 1) {
|
|
15888
|
+
if (children.length === 1 && firstChild.type === 11) {
|
|
15889
|
+
const vnodeCall = firstChild.codegenNode;
|
|
15890
|
+
injectProp(vnodeCall, keyProperty, context);
|
|
15891
|
+
return vnodeCall;
|
|
15892
|
+
} else {
|
|
15893
|
+
let patchFlag = 64;
|
|
15894
|
+
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15895
|
+
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15896
|
+
}
|
|
15658
15897
|
} else {
|
|
15659
|
-
let patchFlag = 64;
|
|
15660
|
-
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15661
|
-
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15662
|
-
}
|
|
15663
|
-
else {
|
|
15664
15898
|
const ret = firstChild.codegenNode;
|
|
15665
15899
|
const vnodeCall = getMemoedVNodeCall(ret);
|
|
15666
15900
|
if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
|
|
@@ -15681,9 +15915,10 @@ function isSameKey(a, b) {
|
|
|
15681
15915
|
return true;
|
|
15682
15916
|
}
|
|
15683
15917
|
function getParentCondition(node) {
|
|
15684
|
-
while (true) if (node.type === 19)
|
|
15685
|
-
|
|
15686
|
-
|
|
15918
|
+
while (true) if (node.type === 19) {
|
|
15919
|
+
if (node.alternate.type === 19) node = node.alternate;
|
|
15920
|
+
else return node;
|
|
15921
|
+
} else if (node.type === 20) node = node.value;
|
|
15687
15922
|
}
|
|
15688
15923
|
//#endregion
|
|
15689
15924
|
//#region packages/compiler-core/src/transforms/vFor.ts
|
|
@@ -15727,10 +15962,12 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
15727
15962
|
childBlock = children[0].codegenNode;
|
|
15728
15963
|
if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
|
|
15729
15964
|
const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
|
|
15730
|
-
if (childBlock.isBlock !== shouldUseBlock)
|
|
15731
|
-
|
|
15732
|
-
|
|
15733
|
-
|
|
15965
|
+
if (childBlock.isBlock !== shouldUseBlock) {
|
|
15966
|
+
if (childBlock.isBlock) {
|
|
15967
|
+
removeHelper(OPEN_BLOCK);
|
|
15968
|
+
removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
15969
|
+
} else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
15970
|
+
}
|
|
15734
15971
|
childBlock.isBlock = shouldUseBlock;
|
|
15735
15972
|
if (childBlock.isBlock) {
|
|
15736
15973
|
helper(OPEN_BLOCK);
|
|
@@ -15947,8 +16184,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
|
|
|
15947
16184
|
return createObjectProperty(`default`, fn);
|
|
15948
16185
|
};
|
|
15949
16186
|
if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
|
|
15950
|
-
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText))
|
|
15951
|
-
|
|
16187
|
+
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
|
|
16188
|
+
if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
|
|
16189
|
+
else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
|
|
16190
|
+
}
|
|
15952
16191
|
}
|
|
15953
16192
|
const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
|
|
15954
16193
|
let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ` /* ${slotFlagsText[slotFlag]} */`, false))), loc);
|
|
@@ -15974,10 +16213,7 @@ function hasForwardedSlots(children) {
|
|
|
15974
16213
|
if (hasForwardedSlots(child.branches)) return true;
|
|
15975
16214
|
break;
|
|
15976
16215
|
case 10:
|
|
15977
|
-
case 11:
|
|
15978
|
-
if (hasForwardedSlots(child.children)) return true;
|
|
15979
|
-
break;
|
|
15980
|
-
default: break;
|
|
16216
|
+
case 11: if (hasForwardedSlots(child.children)) return true;
|
|
15981
16217
|
}
|
|
15982
16218
|
}
|
|
15983
16219
|
return false;
|
|
@@ -16196,29 +16432,30 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16196
16432
|
if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
|
|
16197
16433
|
if (!arg && (isVBind || isVOn)) {
|
|
16198
16434
|
hasDynamicKeys = true;
|
|
16199
|
-
if (exp)
|
|
16200
|
-
|
|
16201
|
-
|
|
16202
|
-
if (
|
|
16203
|
-
if (
|
|
16204
|
-
|
|
16205
|
-
|
|
16206
|
-
|
|
16207
|
-
|
|
16208
|
-
|
|
16209
|
-
|
|
16210
|
-
|
|
16211
|
-
|
|
16212
|
-
|
|
16213
|
-
|
|
16214
|
-
|
|
16215
|
-
|
|
16216
|
-
|
|
16217
|
-
|
|
16218
|
-
|
|
16219
|
-
|
|
16220
|
-
|
|
16221
|
-
|
|
16435
|
+
if (exp) {
|
|
16436
|
+
if (isVBind) {
|
|
16437
|
+
pushMergeArg();
|
|
16438
|
+
if (mergeArgs.some((arg) => {
|
|
16439
|
+
if (arg.type === 15) return arg.properties.some(({ key }) => {
|
|
16440
|
+
if (key.type !== 4 || !key.isStatic) return true;
|
|
16441
|
+
return key.content !== "class" && key.content !== "style" && !isOn(key.content);
|
|
16442
|
+
});
|
|
16443
|
+
else return true;
|
|
16444
|
+
})) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
|
|
16445
|
+
if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
|
|
16446
|
+
mergeArgs.unshift(exp);
|
|
16447
|
+
continue;
|
|
16448
|
+
}
|
|
16449
|
+
pushRefVForMarker();
|
|
16450
|
+
pushMergeArg();
|
|
16451
|
+
mergeArgs.push(exp);
|
|
16452
|
+
} else pushMergeArg({
|
|
16453
|
+
type: 14,
|
|
16454
|
+
loc,
|
|
16455
|
+
callee: context.helper(TO_HANDLERS),
|
|
16456
|
+
arguments: isComponent ? [exp] : [exp, `true`]
|
|
16457
|
+
});
|
|
16458
|
+
} else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
|
|
16222
16459
|
continue;
|
|
16223
16460
|
}
|
|
16224
16461
|
if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
|
|
@@ -16276,9 +16513,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16276
16513
|
} else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
|
|
16277
16514
|
break;
|
|
16278
16515
|
case 14: break;
|
|
16279
|
-
default:
|
|
16280
|
-
propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16281
|
-
break;
|
|
16516
|
+
default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16282
16517
|
}
|
|
16283
16518
|
return {
|
|
16284
16519
|
props: propsExpression,
|
|
@@ -16388,10 +16623,12 @@ function processSlotOutlet(node, context) {
|
|
|
16388
16623
|
for (let i = 0; i < node.props.length; i++) {
|
|
16389
16624
|
const p = node.props[i];
|
|
16390
16625
|
if (p.type === 6) {
|
|
16391
|
-
if (p.value)
|
|
16392
|
-
|
|
16393
|
-
|
|
16394
|
-
|
|
16626
|
+
if (p.value) {
|
|
16627
|
+
if (p.name === "name") slotName = JSON.stringify(p.value.content);
|
|
16628
|
+
else {
|
|
16629
|
+
p.name = camelize(p.name);
|
|
16630
|
+
nonNameProps.push(p);
|
|
16631
|
+
}
|
|
16395
16632
|
}
|
|
16396
16633
|
} else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
|
|
16397
16634
|
if (p.exp) slotName = p.exp;
|
|
@@ -16420,17 +16657,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16420
16657
|
const { loc, modifiers, arg } = dir;
|
|
16421
16658
|
if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
|
|
16422
16659
|
let eventName;
|
|
16423
|
-
if (arg.type === 4)
|
|
16424
|
-
|
|
16425
|
-
|
|
16426
|
-
|
|
16427
|
-
|
|
16428
|
-
|
|
16429
|
-
|
|
16430
|
-
|
|
16431
|
-
|
|
16432
|
-
|
|
16433
|
-
|
|
16660
|
+
if (arg.type === 4) {
|
|
16661
|
+
if (arg.isStatic) {
|
|
16662
|
+
let rawName = arg.content;
|
|
16663
|
+
if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
|
|
16664
|
+
if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
|
|
16665
|
+
eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
|
|
16666
|
+
} else eventName = createCompoundExpression([
|
|
16667
|
+
`${context.helperString(TO_HANDLER_KEY)}(`,
|
|
16668
|
+
arg,
|
|
16669
|
+
`)`
|
|
16670
|
+
]);
|
|
16671
|
+
} else {
|
|
16434
16672
|
eventName = arg;
|
|
16435
16673
|
eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
|
|
16436
16674
|
eventName.children.push(`)`);
|
|
@@ -16447,13 +16685,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16447
16685
|
exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
|
|
16448
16686
|
isInlineStatement && context.removeIdentifiers(`$event`);
|
|
16449
16687
|
shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
|
|
16450
|
-
if (shouldCache && isMemberExp)
|
|
16451
|
-
|
|
16452
|
-
|
|
16453
|
-
|
|
16454
|
-
|
|
16455
|
-
|
|
16456
|
-
|
|
16688
|
+
if (shouldCache && isMemberExp) {
|
|
16689
|
+
if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
|
|
16690
|
+
else exp.children = [
|
|
16691
|
+
...exp.children,
|
|
16692
|
+
` && `,
|
|
16693
|
+
...exp.children,
|
|
16694
|
+
`(...args)`
|
|
16695
|
+
];
|
|
16696
|
+
}
|
|
16457
16697
|
}
|
|
16458
16698
|
if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
|
|
16459
16699
|
`${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
|
|
@@ -16481,11 +16721,14 @@ const transformBind = (dir, _node, context) => {
|
|
|
16481
16721
|
arg.children.unshift(`(`);
|
|
16482
16722
|
arg.children.push(`) || ""`);
|
|
16483
16723
|
} else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
|
|
16484
|
-
if (modifiers.some((mod) => mod.content === "camel"))
|
|
16485
|
-
|
|
16486
|
-
|
|
16487
|
-
|
|
16488
|
-
|
|
16724
|
+
if (modifiers.some((mod) => mod.content === "camel")) {
|
|
16725
|
+
if (arg.type === 4) {
|
|
16726
|
+
if (arg.isStatic) arg.content = camelize(arg.content);
|
|
16727
|
+
else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
|
|
16728
|
+
} else {
|
|
16729
|
+
arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
|
|
16730
|
+
arg.children.push(`)`);
|
|
16731
|
+
}
|
|
16489
16732
|
}
|
|
16490
16733
|
if (!context.inSSR) {
|
|
16491
16734
|
if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
|
|
@@ -16494,9 +16737,10 @@ const transformBind = (dir, _node, context) => {
|
|
|
16494
16737
|
return { props: [createObjectProperty(arg, exp)] };
|
|
16495
16738
|
};
|
|
16496
16739
|
const injectPrefix = (arg, prefix) => {
|
|
16497
|
-
if (arg.type === 4)
|
|
16498
|
-
|
|
16499
|
-
|
|
16740
|
+
if (arg.type === 4) {
|
|
16741
|
+
if (arg.isStatic) arg.content = prefix + arg.content;
|
|
16742
|
+
else arg.content = `\`${prefix}\${${arg.content}}\``;
|
|
16743
|
+
} else {
|
|
16500
16744
|
arg.children.unshift(`'${prefix}' + (`);
|
|
16501
16745
|
arg.children.push(`)`);
|
|
16502
16746
|
}
|
|
@@ -16591,20 +16835,21 @@ const transformModel$1 = (dir, node, context) => {
|
|
|
16591
16835
|
const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
|
|
16592
16836
|
let assignmentExp;
|
|
16593
16837
|
const eventArg = context.isTS ? `($event: any)` : `$event`;
|
|
16594
|
-
if (maybeRef)
|
|
16595
|
-
|
|
16596
|
-
|
|
16597
|
-
`).value = $event)`
|
|
16598
|
-
]);
|
|
16599
|
-
else {
|
|
16600
|
-
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16601
|
-
assignmentExp = createCompoundExpression([
|
|
16602
|
-
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16838
|
+
if (maybeRef) {
|
|
16839
|
+
if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
|
|
16840
|
+
`${eventArg} => ((`,
|
|
16603
16841
|
createSimpleExpression(rawExp, false, exp.loc),
|
|
16604
|
-
`).value = $event
|
|
16842
|
+
`).value = $event)`
|
|
16605
16843
|
]);
|
|
16606
|
-
|
|
16607
|
-
|
|
16844
|
+
else {
|
|
16845
|
+
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16846
|
+
assignmentExp = createCompoundExpression([
|
|
16847
|
+
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16848
|
+
createSimpleExpression(rawExp, false, exp.loc),
|
|
16849
|
+
`).value = $event : ${altAssignment})`
|
|
16850
|
+
]);
|
|
16851
|
+
}
|
|
16852
|
+
} else assignmentExp = createCompoundExpression([
|
|
16608
16853
|
`${eventArg} => ((`,
|
|
16609
16854
|
exp,
|
|
16610
16855
|
`) = $event)`
|
|
@@ -16663,11 +16908,12 @@ function parseFilter(node, context) {
|
|
|
16663
16908
|
if (c === 96 && prev !== 92) inTemplateString = false;
|
|
16664
16909
|
} else if (inRegex) {
|
|
16665
16910
|
if (c === 47 && prev !== 92) inRegex = false;
|
|
16666
|
-
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren)
|
|
16667
|
-
|
|
16668
|
-
|
|
16669
|
-
|
|
16670
|
-
|
|
16911
|
+
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
|
|
16912
|
+
if (expression === void 0) {
|
|
16913
|
+
lastFilterIndex = i + 1;
|
|
16914
|
+
expression = exp.slice(0, i).trim();
|
|
16915
|
+
} else pushFilter();
|
|
16916
|
+
} else {
|
|
16671
16917
|
switch (c) {
|
|
16672
16918
|
case 34:
|
|
16673
16919
|
inDouble = true;
|
|
@@ -16693,9 +16939,7 @@ function parseFilter(node, context) {
|
|
|
16693
16939
|
case 123:
|
|
16694
16940
|
curly++;
|
|
16695
16941
|
break;
|
|
16696
|
-
case 125:
|
|
16697
|
-
curly--;
|
|
16698
|
-
break;
|
|
16942
|
+
case 125: curly--;
|
|
16699
16943
|
}
|
|
16700
16944
|
if (c === 47) {
|
|
16701
16945
|
let j = i - 1;
|
|
@@ -16960,9 +17204,7 @@ const transformModel = (dir, node, context) => {
|
|
|
16960
17204
|
isInvalidType = true;
|
|
16961
17205
|
context.onError(createDOMCompilerError(60, dir.loc));
|
|
16962
17206
|
break;
|
|
16963
|
-
default:
|
|
16964
|
-
checkDuplicatedValue();
|
|
16965
|
-
break;
|
|
17207
|
+
default: checkDuplicatedValue();
|
|
16966
17208
|
}
|
|
16967
17209
|
} else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
|
|
16968
17210
|
else checkDuplicatedValue();
|
|
@@ -16975,10 +17217,10 @@ const transformModel = (dir, node, context) => {
|
|
|
16975
17217
|
};
|
|
16976
17218
|
//#endregion
|
|
16977
17219
|
//#region packages/compiler-dom/src/transforms/vOn.ts
|
|
16978
|
-
const isEventOptionModifier =
|
|
16979
|
-
const isNonKeyModifier =
|
|
16980
|
-
const maybeKeyModifier =
|
|
16981
|
-
const isKeyboardEvent =
|
|
17220
|
+
const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
|
|
17221
|
+
const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
|
|
17222
|
+
const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
|
|
17223
|
+
const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
|
|
16982
17224
|
const resolveModifiers = (key, modifiers, context, loc) => {
|
|
16983
17225
|
const keyModifiers = [];
|
|
16984
17226
|
const nonKeyModifiers = [];
|
|
@@ -16997,13 +17239,15 @@ const resolveModifiers = (key, modifiers, context, loc) => {
|
|
|
16997
17239
|
else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
|
|
16998
17240
|
else {
|
|
16999
17241
|
const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
|
|
17000
|
-
if (maybeKeyModifier(modifier))
|
|
17001
|
-
|
|
17002
|
-
|
|
17003
|
-
|
|
17004
|
-
|
|
17005
|
-
|
|
17006
|
-
|
|
17242
|
+
if (maybeKeyModifier(modifier)) {
|
|
17243
|
+
if (keyString) {
|
|
17244
|
+
if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
|
|
17245
|
+
else nonKeyModifiers.push(modifier);
|
|
17246
|
+
} else {
|
|
17247
|
+
keyModifiers.push(modifier);
|
|
17248
|
+
nonKeyModifiers.push(modifier);
|
|
17249
|
+
}
|
|
17250
|
+
} else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
|
|
17007
17251
|
else keyModifiers.push(modifier);
|
|
17008
17252
|
}
|
|
17009
17253
|
}
|
|
@@ -17173,7 +17417,7 @@ const dataAriaRE = /^(?:data|aria)-/;
|
|
|
17173
17417
|
const isStringifiableAttr = (name, ns) => {
|
|
17174
17418
|
return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
|
|
17175
17419
|
};
|
|
17176
|
-
const isNonStringifiable =
|
|
17420
|
+
const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
|
|
17177
17421
|
/**
|
|
17178
17422
|
* for a cached node, analyze it and return:
|
|
17179
17423
|
* - false: bailed (contains non-stringifiable props or runtime constant)
|
|
@@ -17310,7 +17554,7 @@ function isValidHTMLNesting(parent, child) {
|
|
|
17310
17554
|
}
|
|
17311
17555
|
return true;
|
|
17312
17556
|
}
|
|
17313
|
-
const headings = new Set([
|
|
17557
|
+
const headings = /* @__PURE__ */ new Set([
|
|
17314
17558
|
"h1",
|
|
17315
17559
|
"h2",
|
|
17316
17560
|
"h3",
|
|
@@ -17322,7 +17566,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
|
|
|
17322
17566
|
/**
|
|
17323
17567
|
* maps element to set of elements that can be it's children, no other */
|
|
17324
17568
|
const onlyValidChildren = {
|
|
17325
|
-
head: new Set([
|
|
17569
|
+
head: /* @__PURE__ */ new Set([
|
|
17326
17570
|
"base",
|
|
17327
17571
|
"basefront",
|
|
17328
17572
|
"bgsound",
|
|
@@ -17335,24 +17579,24 @@ const onlyValidChildren = {
|
|
|
17335
17579
|
"script",
|
|
17336
17580
|
"template"
|
|
17337
17581
|
]),
|
|
17338
|
-
optgroup: new Set(["option"]),
|
|
17339
|
-
select: new Set([
|
|
17582
|
+
optgroup: /* @__PURE__ */ new Set(["option"]),
|
|
17583
|
+
select: /* @__PURE__ */ new Set([
|
|
17340
17584
|
"optgroup",
|
|
17341
17585
|
"option",
|
|
17342
17586
|
"hr"
|
|
17343
17587
|
]),
|
|
17344
|
-
table: new Set([
|
|
17588
|
+
table: /* @__PURE__ */ new Set([
|
|
17345
17589
|
"caption",
|
|
17346
17590
|
"colgroup",
|
|
17347
17591
|
"tbody",
|
|
17348
17592
|
"tfoot",
|
|
17349
17593
|
"thead"
|
|
17350
17594
|
]),
|
|
17351
|
-
tr: new Set(["td", "th"]),
|
|
17352
|
-
colgroup: new Set(["col"]),
|
|
17353
|
-
tbody: new Set(["tr"]),
|
|
17354
|
-
thead: new Set(["tr"]),
|
|
17355
|
-
tfoot: new Set(["tr"]),
|
|
17595
|
+
tr: /* @__PURE__ */ new Set(["td", "th"]),
|
|
17596
|
+
colgroup: /* @__PURE__ */ new Set(["col"]),
|
|
17597
|
+
tbody: /* @__PURE__ */ new Set(["tr"]),
|
|
17598
|
+
thead: /* @__PURE__ */ new Set(["tr"]),
|
|
17599
|
+
tfoot: /* @__PURE__ */ new Set(["tr"]),
|
|
17356
17600
|
script: emptySet,
|
|
17357
17601
|
iframe: emptySet,
|
|
17358
17602
|
option: emptySet,
|
|
@@ -17363,30 +17607,30 @@ const onlyValidChildren = {
|
|
|
17363
17607
|
/** maps elements to set of elements which can be it's parent, no other */
|
|
17364
17608
|
const onlyValidParents = {
|
|
17365
17609
|
html: emptySet,
|
|
17366
|
-
body: new Set(["html"]),
|
|
17367
|
-
head: new Set(["html"]),
|
|
17368
|
-
td: new Set(["tr"]),
|
|
17369
|
-
colgroup: new Set(["table"]),
|
|
17370
|
-
caption: new Set(["table"]),
|
|
17371
|
-
tbody: new Set(["table"]),
|
|
17372
|
-
tfoot: new Set(["table"]),
|
|
17373
|
-
col: new Set(["colgroup"]),
|
|
17374
|
-
th: new Set(["tr"]),
|
|
17375
|
-
thead: new Set(["table"]),
|
|
17376
|
-
tr: new Set([
|
|
17610
|
+
body: /* @__PURE__ */ new Set(["html"]),
|
|
17611
|
+
head: /* @__PURE__ */ new Set(["html"]),
|
|
17612
|
+
td: /* @__PURE__ */ new Set(["tr"]),
|
|
17613
|
+
colgroup: /* @__PURE__ */ new Set(["table"]),
|
|
17614
|
+
caption: /* @__PURE__ */ new Set(["table"]),
|
|
17615
|
+
tbody: /* @__PURE__ */ new Set(["table"]),
|
|
17616
|
+
tfoot: /* @__PURE__ */ new Set(["table"]),
|
|
17617
|
+
col: /* @__PURE__ */ new Set(["colgroup"]),
|
|
17618
|
+
th: /* @__PURE__ */ new Set(["tr"]),
|
|
17619
|
+
thead: /* @__PURE__ */ new Set(["table"]),
|
|
17620
|
+
tr: /* @__PURE__ */ new Set([
|
|
17377
17621
|
"tbody",
|
|
17378
17622
|
"thead",
|
|
17379
17623
|
"tfoot"
|
|
17380
17624
|
]),
|
|
17381
|
-
dd: new Set(["dl", "div"]),
|
|
17382
|
-
dt: new Set(["dl", "div"]),
|
|
17383
|
-
figcaption: new Set(["figure"]),
|
|
17384
|
-
summary: new Set(["details"]),
|
|
17385
|
-
area: new Set(["map"])
|
|
17625
|
+
dd: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17626
|
+
dt: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17627
|
+
figcaption: /* @__PURE__ */ new Set(["figure"]),
|
|
17628
|
+
summary: /* @__PURE__ */ new Set(["details"]),
|
|
17629
|
+
area: /* @__PURE__ */ new Set(["map"])
|
|
17386
17630
|
};
|
|
17387
17631
|
/** maps element to set of elements that can not be it's children, others can */
|
|
17388
17632
|
const knownInvalidChildren = {
|
|
17389
|
-
p: new Set([
|
|
17633
|
+
p: /* @__PURE__ */ new Set([
|
|
17390
17634
|
"address",
|
|
17391
17635
|
"article",
|
|
17392
17636
|
"aside",
|
|
@@ -17421,7 +17665,7 @@ const knownInvalidChildren = {
|
|
|
17421
17665
|
"table",
|
|
17422
17666
|
"ul"
|
|
17423
17667
|
]),
|
|
17424
|
-
svg: new Set([
|
|
17668
|
+
svg: /* @__PURE__ */ new Set([
|
|
17425
17669
|
"b",
|
|
17426
17670
|
"blockquote",
|
|
17427
17671
|
"br",
|
|
@@ -17462,12 +17706,12 @@ const knownInvalidChildren = {
|
|
|
17462
17706
|
};
|
|
17463
17707
|
/** maps element to set of elements that can not be it's parent, others can */
|
|
17464
17708
|
const knownInvalidParents = {
|
|
17465
|
-
a: new Set(["a"]),
|
|
17466
|
-
button: new Set(["button"]),
|
|
17467
|
-
dd: new Set(["dd", "dt"]),
|
|
17468
|
-
dt: new Set(["dd", "dt"]),
|
|
17469
|
-
form: new Set(["form"]),
|
|
17470
|
-
li: new Set(["li"]),
|
|
17709
|
+
a: /* @__PURE__ */ new Set(["a"]),
|
|
17710
|
+
button: /* @__PURE__ */ new Set(["button"]),
|
|
17711
|
+
dd: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17712
|
+
dt: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17713
|
+
form: /* @__PURE__ */ new Set(["form"]),
|
|
17714
|
+
li: /* @__PURE__ */ new Set(["li"]),
|
|
17471
17715
|
h1: headings,
|
|
17472
17716
|
h2: headings,
|
|
17473
17717
|
h3: headings,
|
|
@@ -17510,10 +17754,12 @@ function compile(src, options = {}) {
|
|
|
17510
17754
|
//#region packages/vue-compat/src/index.ts
|
|
17511
17755
|
const compileCache = Object.create(null);
|
|
17512
17756
|
function compileToFunction(template, options) {
|
|
17513
|
-
if (!isString(template))
|
|
17514
|
-
|
|
17515
|
-
|
|
17516
|
-
|
|
17757
|
+
if (!isString(template)) {
|
|
17758
|
+
if (template.nodeType) template = template.innerHTML;
|
|
17759
|
+
else {
|
|
17760
|
+
warn(`invalid template option: `, template);
|
|
17761
|
+
return NOOP;
|
|
17762
|
+
}
|
|
17517
17763
|
}
|
|
17518
17764
|
const key = genCacheKey(template, options);
|
|
17519
17765
|
const cached = compileCache[key];
|