@vue/compat 3.6.0-rc.5 → 3.6.0-rc.7
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 +686 -685
- package/dist/vue.cjs.js +974 -769
- package/dist/vue.cjs.prod.js +797 -653
- package/dist/vue.esm-browser.js +876 -688
- package/dist/vue.esm-browser.prod.js +7 -7
- package/dist/vue.esm-bundler.js +901 -705
- package/dist/vue.global.js +877 -689
- package/dist/vue.global.prod.js +7 -7
- package/dist/vue.runtime.esm-browser.js +876 -688
- package/dist/vue.runtime.esm-browser.prod.js +7 -7
- package/dist/vue.runtime.esm-bundler.js +901 -705
- package/dist/vue.runtime.global.js +877 -689
- 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.7
|
|
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;
|
|
@@ -3976,7 +4038,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
|
|
|
3976
4038
|
else done();
|
|
3977
4039
|
},
|
|
3978
4040
|
clone(node) {
|
|
3979
|
-
return cloneHooks(node);
|
|
4041
|
+
return cloneHooks ? cloneHooks(node) : hooks;
|
|
3980
4042
|
}
|
|
3981
4043
|
};
|
|
3982
4044
|
return hooks;
|
|
@@ -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;
|
|
@@ -4316,11 +4379,12 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4316
4379
|
let nextNode = null;
|
|
4317
4380
|
switch (type) {
|
|
4318
4381
|
case Text:
|
|
4319
|
-
if (domType !== 3)
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
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 {
|
|
4324
4388
|
if (node.data !== vnode.children) {
|
|
4325
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)}`);
|
|
4326
4390
|
logMismatchError();
|
|
@@ -4359,9 +4423,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4359
4423
|
case VaporSlot:
|
|
4360
4424
|
nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
|
|
4361
4425
|
break;
|
|
4362
|
-
default: if (shapeFlag & 1)
|
|
4363
|
-
|
|
4364
|
-
|
|
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) {
|
|
4365
4430
|
vnode.slotScopeIds = slotScopeIds;
|
|
4366
4431
|
const container = parentNode(node);
|
|
4367
4432
|
if (isFragmentStart) nextNode = locateClosingAnchor(node);
|
|
@@ -4383,19 +4448,20 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4383
4448
|
} else {
|
|
4384
4449
|
mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
|
|
4385
4450
|
const component = vnode.component;
|
|
4386
|
-
if (isAsyncWrapper(vnode)
|
|
4451
|
+
if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep && !component.asyncResolved)) {
|
|
4387
4452
|
let subTree;
|
|
4388
4453
|
if (isFragmentStart) {
|
|
4389
|
-
subTree = createVNode(
|
|
4454
|
+
subTree = createVNode(Static);
|
|
4390
4455
|
subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
|
|
4391
4456
|
} else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
|
|
4392
4457
|
subTree.el = node;
|
|
4393
4458
|
component.subTree = subTree;
|
|
4394
4459
|
}
|
|
4395
4460
|
}
|
|
4396
|
-
} else if (shapeFlag & 64)
|
|
4397
|
-
|
|
4398
|
-
|
|
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);
|
|
4399
4465
|
else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
|
|
4400
4466
|
}
|
|
4401
4467
|
if (ref != null) setRef(ref, null, parentSuspense, vnode);
|
|
@@ -4536,8 +4602,10 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
4536
4602
|
node = nextSibling(node);
|
|
4537
4603
|
if (node && isComment(node)) {
|
|
4538
4604
|
if (node.data === open) match++;
|
|
4539
|
-
if (node.data === close)
|
|
4540
|
-
|
|
4605
|
+
if (node.data === close) {
|
|
4606
|
+
if (match === 0) return nextSibling(node);
|
|
4607
|
+
else match--;
|
|
4608
|
+
}
|
|
4541
4609
|
}
|
|
4542
4610
|
}
|
|
4543
4611
|
return node;
|
|
@@ -4559,7 +4627,7 @@ const isTemplateNode$1 = (node) => {
|
|
|
4559
4627
|
/**
|
|
4560
4628
|
* Dev only
|
|
4561
4629
|
*/
|
|
4562
|
-
const resourceProps =
|
|
4630
|
+
const resourceProps = /*@__PURE__*/ new Set([
|
|
4563
4631
|
"src",
|
|
4564
4632
|
"srcset",
|
|
4565
4633
|
"href",
|
|
@@ -4801,14 +4869,14 @@ function forEachElement(node, cb) {
|
|
|
4801
4869
|
//#endregion
|
|
4802
4870
|
//#region packages/runtime-core/src/apiAsyncComponent.ts
|
|
4803
4871
|
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
|
|
4804
|
-
|
|
4872
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
4805
4873
|
function defineAsyncComponent(source) {
|
|
4806
4874
|
const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
|
|
4807
4875
|
return /* @__PURE__ */ defineComponent({
|
|
4808
4876
|
name: "AsyncComponentWrapper",
|
|
4809
4877
|
__asyncLoader: load,
|
|
4810
4878
|
__asyncHydrate(el, instance, hydrate) {
|
|
4811
|
-
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
|
|
4879
|
+
performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
|
|
4812
4880
|
},
|
|
4813
4881
|
get __asyncResolved() {
|
|
4814
4882
|
return getResolvedComp();
|
|
@@ -4927,10 +4995,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
|
|
|
4927
4995
|
* shared between core and vapor
|
|
4928
4996
|
* @internal
|
|
4929
4997
|
*/
|
|
4930
|
-
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
|
|
4998
|
+
function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
|
|
4931
4999
|
const wasConnected = el.isConnected;
|
|
4932
5000
|
let patched = false;
|
|
4933
|
-
(instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
5001
|
+
if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
|
|
4934
5002
|
const performHydrate = () => {
|
|
4935
5003
|
if (patched) {
|
|
4936
5004
|
{
|
|
@@ -5020,10 +5088,13 @@ const KeepAliveImpl = {
|
|
|
5020
5088
|
});
|
|
5021
5089
|
let pendingCacheKey = null;
|
|
5022
5090
|
const cacheSubtree = () => {
|
|
5023
|
-
if (pendingCacheKey != null)
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
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
|
+
}
|
|
5027
5098
|
};
|
|
5028
5099
|
onMounted(cacheSubtree);
|
|
5029
5100
|
onUpdated(cacheSubtree);
|
|
@@ -5094,7 +5165,7 @@ const decorate$2 = (t) => {
|
|
|
5094
5165
|
t.__isBuiltIn = true;
|
|
5095
5166
|
return t;
|
|
5096
5167
|
};
|
|
5097
|
-
const KeepAlive =
|
|
5168
|
+
const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
|
|
5098
5169
|
function matches(pattern, name) {
|
|
5099
5170
|
if (isArray(pattern)) return pattern.some((p) => matches(p, name));
|
|
5100
5171
|
else if (isString(pattern)) return pattern.split(",").includes(name);
|
|
@@ -5310,16 +5381,17 @@ function compatH(type, propsOrChildren, children) {
|
|
|
5310
5381
|
}
|
|
5311
5382
|
const l = arguments.length;
|
|
5312
5383
|
const is2ndArgArrayChildren = isArray(propsOrChildren);
|
|
5313
|
-
if (l === 2 || is2ndArgArrayChildren)
|
|
5314
|
-
if (
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
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 {
|
|
5318
5390
|
if (isVNode(children)) children = [children];
|
|
5319
5391
|
return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
|
|
5320
5392
|
}
|
|
5321
5393
|
}
|
|
5322
|
-
const skipLegacyRootLevelProps =
|
|
5394
|
+
const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
|
|
5323
5395
|
function convertLegacyProps(legacyProps, type) {
|
|
5324
5396
|
if (!legacyProps) return null;
|
|
5325
5397
|
const converted = {};
|
|
@@ -5331,8 +5403,10 @@ function convertLegacyProps(legacyProps, type) {
|
|
|
5331
5403
|
if (key === "nativeOn") handlerKey += `Native`;
|
|
5332
5404
|
const existing = converted[handlerKey];
|
|
5333
5405
|
const incoming = listeners[event];
|
|
5334
|
-
if (existing !== incoming)
|
|
5335
|
-
|
|
5406
|
+
if (existing !== incoming) {
|
|
5407
|
+
if (existing) converted[handlerKey] = [].concat(existing, incoming);
|
|
5408
|
+
else converted[handlerKey] = incoming;
|
|
5409
|
+
}
|
|
5336
5410
|
}
|
|
5337
5411
|
} else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
|
|
5338
5412
|
if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
|
|
@@ -5431,7 +5505,7 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5431
5505
|
const legacyFn = comp.render;
|
|
5432
5506
|
const Func = (props, ctx) => {
|
|
5433
5507
|
const instance = getCurrentInstance();
|
|
5434
|
-
|
|
5508
|
+
const legacyCtx = {
|
|
5435
5509
|
props,
|
|
5436
5510
|
children: instance.vnode.children || [],
|
|
5437
5511
|
data: instance.vnode.props || {},
|
|
@@ -5451,7 +5525,8 @@ function convertLegacyFunctionalComponent(comp) {
|
|
|
5451
5525
|
}
|
|
5452
5526
|
return {};
|
|
5453
5527
|
}
|
|
5454
|
-
}
|
|
5528
|
+
};
|
|
5529
|
+
return legacyFn(compatH, legacyCtx);
|
|
5455
5530
|
};
|
|
5456
5531
|
Func.props = comp.props;
|
|
5457
5532
|
Func.displayName = comp.name;
|
|
@@ -5480,23 +5555,25 @@ function renderList(source, renderItem, cache, index) {
|
|
|
5480
5555
|
}
|
|
5481
5556
|
ret = new Array(source.length);
|
|
5482
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]);
|
|
5483
|
-
} else if (typeof source === "number")
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
|
|
5491
|
-
else {
|
|
5492
|
-
const keys = Object.keys(source);
|
|
5493
|
-
ret = new Array(keys.length);
|
|
5494
|
-
for (let i = 0, l = keys.length; i < l; i++) {
|
|
5495
|
-
const key = keys[i];
|
|
5496
|
-
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]);
|
|
5497
5565
|
}
|
|
5498
|
-
}
|
|
5499
|
-
|
|
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 = [];
|
|
5500
5577
|
if (cache) cache[index] = ret;
|
|
5501
5578
|
return ret;
|
|
5502
5579
|
}
|
|
@@ -5521,14 +5598,27 @@ function createSlots(slots, dynamicSlots) {
|
|
|
5521
5598
|
//#endregion
|
|
5522
5599
|
//#region packages/runtime-core/src/helpers/renderSlot.ts
|
|
5523
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
|
+
/**
|
|
5524
5614
|
* Compiler runtime helper for rendering `<slot/>`
|
|
5525
5615
|
* @private
|
|
5526
5616
|
*/
|
|
5527
5617
|
function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
|
|
5528
5618
|
if (props == null) props = {};
|
|
5529
5619
|
let slot = slots[name];
|
|
5530
|
-
if (fallback) fallback
|
|
5531
|
-
const vaporSlot = slot &&
|
|
5620
|
+
if (fallback) fallback[vdomSlotFallbackKey] = true;
|
|
5621
|
+
const vaporSlot = slot && slot[rawVaporSlotKey];
|
|
5532
5622
|
if (vaporSlot) {
|
|
5533
5623
|
const ret = (openBlock(), createBlock(VaporSlot, props));
|
|
5534
5624
|
ret.vs = {
|
|
@@ -5636,12 +5726,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
|
|
|
5636
5726
|
function mapKeyToName(slots) {
|
|
5637
5727
|
for (let i = 0; i < slots.length; i++) {
|
|
5638
5728
|
const fn = slots[i];
|
|
5639
|
-
if (fn)
|
|
5640
|
-
|
|
5729
|
+
if (fn) {
|
|
5730
|
+
if (isArray(fn)) mapKeyToName(fn);
|
|
5731
|
+
else fn.name = fn.key || "default";
|
|
5732
|
+
}
|
|
5641
5733
|
}
|
|
5642
5734
|
return slots;
|
|
5643
5735
|
}
|
|
5644
|
-
const staticCacheMap =
|
|
5736
|
+
const staticCacheMap = /*@__PURE__*/ new WeakMap();
|
|
5645
5737
|
function legacyRenderStatic(instance, index) {
|
|
5646
5738
|
let cache = staticCacheMap.get(instance);
|
|
5647
5739
|
if (!cache) staticCacheMap.set(instance, cache = []);
|
|
@@ -5774,11 +5866,38 @@ const getPublicInstance = (i) => {
|
|
|
5774
5866
|
if (isStatefulComponent(i)) return getComponentPublicInstance(i);
|
|
5775
5867
|
return getPublicInstance(i.parent);
|
|
5776
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
|
+
};
|
|
5777
5896
|
let publicPropertiesMap;
|
|
5778
5897
|
const getPublicPropertiesMap = () => {
|
|
5779
5898
|
if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
|
|
5780
5899
|
$: (i) => i,
|
|
5781
|
-
$el: (i) => i
|
|
5900
|
+
$el: (i) => getDevRootFragmentEl(i),
|
|
5782
5901
|
$data: (i) => i.data,
|
|
5783
5902
|
$props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
|
|
5784
5903
|
$attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
|
|
@@ -5891,7 +6010,7 @@ PublicInstanceProxyHandlers.ownKeys = (target) => {
|
|
|
5891
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.");
|
|
5892
6011
|
return Reflect.ownKeys(target);
|
|
5893
6012
|
};
|
|
5894
|
-
const RuntimeCompiledPublicInstanceProxyHandlers =
|
|
6013
|
+
const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
|
|
5895
6014
|
get(target, key) {
|
|
5896
6015
|
if (key === Symbol.unscopables) return;
|
|
5897
6016
|
return PublicInstanceProxyHandlers.get(target, key, target);
|
|
@@ -6076,12 +6195,13 @@ function mergeDefaults(raw, defaults) {
|
|
|
6076
6195
|
for (const key in defaults) {
|
|
6077
6196
|
if (key.startsWith("__skip")) continue;
|
|
6078
6197
|
let opt = props[key];
|
|
6079
|
-
if (opt)
|
|
6080
|
-
|
|
6081
|
-
|
|
6082
|
-
|
|
6083
|
-
|
|
6084
|
-
|
|
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] };
|
|
6085
6205
|
else warn$1(`props default key "${key}" has no corresponding declaration.`);
|
|
6086
6206
|
if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
|
|
6087
6207
|
}
|
|
@@ -6224,11 +6344,12 @@ function applyOptions(instance) {
|
|
|
6224
6344
|
const opt = computedOptions[key];
|
|
6225
6345
|
const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
|
|
6226
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
|
+
};
|
|
6227
6350
|
const c = computed({
|
|
6228
6351
|
get,
|
|
6229
|
-
set
|
|
6230
|
-
warn$1(`Write operation failed: computed property "${key}" is readonly.`);
|
|
6231
|
-
}
|
|
6352
|
+
set
|
|
6232
6353
|
});
|
|
6233
6354
|
Object.defineProperty(ctx, key, {
|
|
6234
6355
|
enumerable: true,
|
|
@@ -6288,9 +6409,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
|
|
|
6288
6409
|
for (const key in injectOptions) {
|
|
6289
6410
|
const opt = injectOptions[key];
|
|
6290
6411
|
let injected;
|
|
6291
|
-
if (isObject(opt))
|
|
6292
|
-
|
|
6293
|
-
|
|
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);
|
|
6294
6416
|
if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
|
|
6295
6417
|
enumerable: true,
|
|
6296
6418
|
configurable: true,
|
|
@@ -6310,7 +6432,8 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6310
6432
|
{
|
|
6311
6433
|
const cur = getCurrentInstance();
|
|
6312
6434
|
const instance = cur && getCurrentScope() === cur.scope ? cur : null;
|
|
6313
|
-
|
|
6435
|
+
const newValue = getter();
|
|
6436
|
+
if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
|
|
6314
6437
|
const baseGetter = getter;
|
|
6315
6438
|
getter = () => {
|
|
6316
6439
|
const val = baseGetter();
|
|
@@ -6323,13 +6446,14 @@ function createWatcher(raw, ctx, publicThis, key) {
|
|
|
6323
6446
|
if (isFunction(handler)) watch(getter, handler, options);
|
|
6324
6447
|
else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
|
|
6325
6448
|
} else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
|
|
6326
|
-
else if (isObject(raw))
|
|
6327
|
-
|
|
6328
|
-
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
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);
|
|
6333
6457
|
}
|
|
6334
6458
|
/**
|
|
6335
6459
|
* Resolve merged options and cache it on the component.
|
|
@@ -6343,12 +6467,13 @@ function resolveMergedOptions(instance) {
|
|
|
6343
6467
|
const cached = cache.get(base);
|
|
6344
6468
|
let resolved;
|
|
6345
6469
|
if (cached) resolved = cached;
|
|
6346
|
-
else if (!globalMixins.length && !mixins && !extendsOptions)
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
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 {
|
|
6352
6477
|
resolved = {};
|
|
6353
6478
|
if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
|
|
6354
6479
|
mergeOptions(resolved, base, optionMergeStrategies);
|
|
@@ -6421,7 +6546,7 @@ function mergeObjectOptions(to, from) {
|
|
|
6421
6546
|
}
|
|
6422
6547
|
function mergeEmitsOrPropsOptions(to, from) {
|
|
6423
6548
|
if (to) {
|
|
6424
|
-
if (isArray(to) && isArray(from)) return [
|
|
6549
|
+
if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
|
|
6425
6550
|
return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
|
|
6426
6551
|
} else return from;
|
|
6427
6552
|
}
|
|
@@ -6482,7 +6607,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
|
|
|
6482
6607
|
if (options.el) return vm.$mount(options.el);
|
|
6483
6608
|
else return vm;
|
|
6484
6609
|
}
|
|
6485
|
-
Vue.version = `2.6.14-compat:3.6.0-rc.
|
|
6610
|
+
Vue.version = `2.6.14-compat:3.6.0-rc.7`;
|
|
6486
6611
|
Vue.config = singletonApp.config;
|
|
6487
6612
|
Vue.use = (plugin, ...options) => {
|
|
6488
6613
|
if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
|
|
@@ -6872,8 +6997,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
|
|
|
6872
6997
|
} else warn$1(`Cannot unmount an app that is not mounted.`);
|
|
6873
6998
|
},
|
|
6874
6999
|
provide(key, value) {
|
|
6875
|
-
if (key in context.provides)
|
|
6876
|
-
|
|
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
|
+
}
|
|
6877
7004
|
context.provides[key] = value;
|
|
6878
7005
|
return app;
|
|
6879
7006
|
},
|
|
@@ -7023,12 +7150,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
7023
7150
|
if (instance.isUnmounted) return;
|
|
7024
7151
|
{
|
|
7025
7152
|
const { emitsOptions, propsOptions } = instance;
|
|
7026
|
-
if (emitsOptions)
|
|
7027
|
-
if (!
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
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
|
+
}
|
|
7032
7161
|
}
|
|
7033
7162
|
}
|
|
7034
7163
|
}
|
|
@@ -7038,7 +7167,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
|
|
|
7038
7167
|
const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
|
|
7039
7168
|
if (modifiers) {
|
|
7040
7169
|
if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
|
|
7041
|
-
if (modifiers.number) args =
|
|
7170
|
+
if (modifiers.number) args = args.map(looseToNumber);
|
|
7042
7171
|
}
|
|
7043
7172
|
devtoolsComponentEmit(instance, event, args);
|
|
7044
7173
|
{
|
|
@@ -7233,10 +7362,12 @@ function filterSingleRoot(children, recurse = true) {
|
|
|
7233
7362
|
for (let i = 0; i < children.length; i++) {
|
|
7234
7363
|
const child = children[i];
|
|
7235
7364
|
if (isVNode(child)) {
|
|
7236
|
-
if (child.type !== Comment || child.children === "v-if")
|
|
7237
|
-
|
|
7238
|
-
|
|
7239
|
-
|
|
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
|
+
}
|
|
7240
7371
|
}
|
|
7241
7372
|
} else return;
|
|
7242
7373
|
}
|
|
@@ -7381,16 +7512,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7381
7512
|
let key = propsToUpdate[i];
|
|
7382
7513
|
if (isEmitListener(instance.emitsOptions, key)) continue;
|
|
7383
7514
|
const value = rawProps[key];
|
|
7384
|
-
if (options)
|
|
7385
|
-
if (
|
|
7386
|
-
attrs[key]
|
|
7387
|
-
|
|
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);
|
|
7388
7524
|
}
|
|
7389
7525
|
} else {
|
|
7390
|
-
const camelizedKey = camelize(key);
|
|
7391
|
-
props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
|
|
7392
|
-
}
|
|
7393
|
-
else {
|
|
7394
7526
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7395
7527
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7396
7528
|
if (value !== attrs[key]) {
|
|
@@ -7403,9 +7535,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
|
|
|
7403
7535
|
} else {
|
|
7404
7536
|
if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
|
|
7405
7537
|
let kebabKey;
|
|
7406
|
-
for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey)))
|
|
7407
|
-
if (
|
|
7408
|
-
|
|
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
|
+
}
|
|
7409
7543
|
if (attrs !== rawCurrentProps) {
|
|
7410
7544
|
for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
|
|
7411
7545
|
delete attrs[key];
|
|
@@ -7426,9 +7560,10 @@ function setFullProps(instance, rawProps, props, attrs) {
|
|
|
7426
7560
|
if (key === "inline-template") continue;
|
|
7427
7561
|
const value = rawProps[key];
|
|
7428
7562
|
let camelKey;
|
|
7429
|
-
if (options && hasOwn(options, camelKey = camelize(key)))
|
|
7430
|
-
|
|
7431
|
-
|
|
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)) {
|
|
7432
7567
|
if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
|
|
7433
7568
|
else if (shouldSkipAttr(key, instance)) continue;
|
|
7434
7569
|
if (!(key in attrs) || value !== attrs[key]) {
|
|
@@ -7594,7 +7729,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
|
|
|
7594
7729
|
}
|
|
7595
7730
|
if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
|
|
7596
7731
|
}
|
|
7597
|
-
const isSimpleType =
|
|
7732
|
+
const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
|
|
7598
7733
|
/**
|
|
7599
7734
|
* dev only
|
|
7600
7735
|
*/
|
|
@@ -7707,12 +7842,13 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7707
7842
|
let deletionComparisonTarget = EMPTY_OBJ;
|
|
7708
7843
|
if (vnode.shapeFlag & 32) {
|
|
7709
7844
|
const type = children._;
|
|
7710
|
-
if (type)
|
|
7711
|
-
|
|
7712
|
-
|
|
7713
|
-
|
|
7714
|
-
|
|
7715
|
-
|
|
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 {
|
|
7716
7852
|
needDeletionCheck = !children.$stable;
|
|
7717
7853
|
normalizeObjectSlots(children, slots, instance);
|
|
7718
7854
|
}
|
|
@@ -7730,7 +7866,7 @@ const updateSlots = (instance, children, optimized) => {
|
|
|
7730
7866
|
let supported;
|
|
7731
7867
|
let perf;
|
|
7732
7868
|
let cachedNow$1 = 0;
|
|
7733
|
-
const p$1 =
|
|
7869
|
+
const p$1 = /*@__PURE__*/ Promise.resolve();
|
|
7734
7870
|
const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
|
|
7735
7871
|
/**
|
|
7736
7872
|
* @internal
|
|
@@ -7946,7 +8082,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7946
8082
|
for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
|
|
7947
8083
|
};
|
|
7948
8084
|
const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
|
|
7949
|
-
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
|
+
}
|
|
7950
8089
|
};
|
|
7951
8090
|
const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
7952
8091
|
const el = n2.el = n1.el;
|
|
@@ -7958,6 +8097,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7958
8097
|
let vnodeHook;
|
|
7959
8098
|
parentComponent && toggleRecurse(parentComponent, false);
|
|
7960
8099
|
if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8100
|
+
if (n2.ibu) n2.ibu();
|
|
7961
8101
|
if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
7962
8102
|
parentComponent && toggleRecurse(parentComponent, true);
|
|
7963
8103
|
if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
|
|
@@ -7991,8 +8131,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
7991
8131
|
if (n1.children !== n2.children) hostSetElementText(el, n2.children);
|
|
7992
8132
|
}
|
|
7993
8133
|
} else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
|
|
7994
|
-
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
|
|
8134
|
+
if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
|
|
7995
8135
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
8136
|
+
n2.iu && n2.iu();
|
|
7996
8137
|
dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
7997
8138
|
}, void 0, parentSuspense);
|
|
7998
8139
|
};
|
|
@@ -8000,7 +8141,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8000
8141
|
for (let i = 0; i < newChildren.length; i++) {
|
|
8001
8142
|
const oldVNode = oldChildren[i];
|
|
8002
8143
|
const newVNode = newChildren[i];
|
|
8003
|
-
|
|
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);
|
|
8004
8146
|
}
|
|
8005
8147
|
};
|
|
8006
8148
|
const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
|
|
@@ -8038,41 +8180,46 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8038
8180
|
};
|
|
8039
8181
|
const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
|
|
8040
8182
|
n2.slotScopeIds = slotScopeIds;
|
|
8041
|
-
if (n2.type.__vapor)
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
|
|
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
|
+
}
|
|
8048
8202
|
}
|
|
8049
|
-
}
|
|
8050
|
-
|
|
8051
|
-
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8056
|
-
|
|
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);
|
|
8057
8218
|
}
|
|
8058
|
-
}
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
|
|
8063
|
-
}, () => {
|
|
8064
|
-
const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
|
|
8065
|
-
if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
|
|
8066
|
-
});
|
|
8067
|
-
const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
|
|
8068
|
-
if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
|
|
8069
|
-
n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
|
|
8070
|
-
vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
|
|
8071
|
-
}, void 0, parentSuspense);
|
|
8072
|
-
}
|
|
8073
|
-
else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
|
|
8074
|
-
else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
|
|
8075
|
-
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);
|
|
8076
8223
|
};
|
|
8077
8224
|
const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
|
|
8078
8225
|
const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
|
|
@@ -8116,16 +8263,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8116
8263
|
};
|
|
8117
8264
|
const updateComponent = (n1, n2, optimized) => {
|
|
8118
8265
|
const instance = n2.component = n1.component;
|
|
8119
|
-
if (shouldUpdateComponent(n1, n2, optimized))
|
|
8120
|
-
|
|
8121
|
-
|
|
8122
|
-
|
|
8123
|
-
|
|
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
|
+
}
|
|
8124
8276
|
} else {
|
|
8125
|
-
instance.next = n2;
|
|
8126
|
-
instance.effect.run();
|
|
8127
|
-
}
|
|
8128
|
-
else {
|
|
8129
8277
|
n2.el = n1.el;
|
|
8130
8278
|
instance.vnode = n2;
|
|
8131
8279
|
}
|
|
@@ -8228,6 +8376,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8228
8376
|
} else next = vnode;
|
|
8229
8377
|
if (bu) invokeArrayFns(bu);
|
|
8230
8378
|
if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
|
|
8379
|
+
if (next.ibu) next.ibu();
|
|
8231
8380
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
|
|
8232
8381
|
toggleRecurse(instance, true);
|
|
8233
8382
|
startMeasure(instance, `render`);
|
|
@@ -8241,7 +8390,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8241
8390
|
next.el = nextTree.el;
|
|
8242
8391
|
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
8243
8392
|
if (u) queuePostRenderEffect(u, void 0, parentSuspense);
|
|
8244
|
-
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);
|
|
8245
8397
|
if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
|
|
8246
8398
|
devtoolsComponentUpdated(instance);
|
|
8247
8399
|
popWarningContext();
|
|
@@ -8282,9 +8434,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8282
8434
|
if (shapeFlag & 8) {
|
|
8283
8435
|
if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
|
|
8284
8436
|
if (c2 !== c1) hostSetElementText(container, c2);
|
|
8285
|
-
} else if (prevShapeFlag & 16)
|
|
8286
|
-
|
|
8287
|
-
|
|
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 {
|
|
8288
8441
|
if (prevShapeFlag & 8) hostSetElementText(container, "");
|
|
8289
8442
|
if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8290
8443
|
}
|
|
@@ -8383,8 +8536,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8383
8536
|
const anchorVNode = c2[nextIndex + 1];
|
|
8384
8537
|
const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
|
|
8385
8538
|
if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
|
|
8386
|
-
else if (moved)
|
|
8387
|
-
|
|
8539
|
+
else if (moved) {
|
|
8540
|
+
if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
|
|
8541
|
+
else j--;
|
|
8542
|
+
}
|
|
8388
8543
|
}
|
|
8389
8544
|
}
|
|
8390
8545
|
};
|
|
@@ -8416,26 +8571,13 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8416
8571
|
moveStaticNode(vnode, container, anchor);
|
|
8417
8572
|
return;
|
|
8418
8573
|
}
|
|
8419
|
-
if (moveType !== 2 && shapeFlag & 1 && transition)
|
|
8420
|
-
|
|
8421
|
-
|
|
8422
|
-
const remove = () => {
|
|
8574
|
+
if (moveType !== 2 && shapeFlag & 1 && transition) {
|
|
8575
|
+
if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
|
|
8576
|
+
else performTransitionLeave(el, transition, () => {
|
|
8423
8577
|
if (vnode.ctx.isUnmounted) hostRemove(el);
|
|
8424
8578
|
else hostInsert(el, container, anchor);
|
|
8425
|
-
};
|
|
8426
|
-
|
|
8427
|
-
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
8428
|
-
if (el._isLeaving) el[leaveCbKey](true);
|
|
8429
|
-
if (transition.persisted && !wasLeaving) remove();
|
|
8430
|
-
else leave(el, () => {
|
|
8431
|
-
remove();
|
|
8432
|
-
afterLeave && afterLeave();
|
|
8433
|
-
});
|
|
8434
|
-
};
|
|
8435
|
-
if (delayLeave) delayLeave(el, remove, performLeave);
|
|
8436
|
-
else performLeave();
|
|
8437
|
-
}
|
|
8438
|
-
else hostInsert(el, container, anchor);
|
|
8579
|
+
}, true, true);
|
|
8580
|
+
} else hostInsert(el, container, anchor);
|
|
8439
8581
|
};
|
|
8440
8582
|
const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
|
|
8441
8583
|
const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
|
|
@@ -8455,16 +8597,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
8455
8597
|
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
8456
8598
|
let vnodeHook;
|
|
8457
8599
|
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8458
|
-
if (shapeFlag & 6)
|
|
8459
|
-
if (
|
|
8460
|
-
|
|
8461
|
-
|
|
8462
|
-
|
|
8463
|
-
|
|
8464
|
-
|
|
8465
|
-
|
|
8466
|
-
|
|
8467
|
-
|
|
8600
|
+
if (shapeFlag & 6) {
|
|
8601
|
+
if (isVaporComponent(type)) {
|
|
8602
|
+
if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
|
|
8603
|
+
getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
|
|
8604
|
+
if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
|
|
8605
|
+
dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
|
|
8606
|
+
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
8607
|
+
}, void 0, parentSuspense);
|
|
8608
|
+
return;
|
|
8609
|
+
} else unmountComponent(vnode.component, parentSuspense, doRemove);
|
|
8610
|
+
} else {
|
|
8468
8611
|
if (shapeFlag & 128) {
|
|
8469
8612
|
vnode.suspense.unmount(parentSuspense, doRemove);
|
|
8470
8613
|
return;
|
|
@@ -8598,12 +8741,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
|
|
|
8598
8741
|
return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
|
|
8599
8742
|
}
|
|
8600
8743
|
function toggleRecurse({ effect, job, vapor }, allowed) {
|
|
8601
|
-
if (!vapor)
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8744
|
+
if (!vapor) {
|
|
8745
|
+
if (allowed) {
|
|
8746
|
+
effect.flags |= 128;
|
|
8747
|
+
job.flags |= 2;
|
|
8748
|
+
} else {
|
|
8749
|
+
effect.flags &= -129;
|
|
8750
|
+
job.flags &= -3;
|
|
8751
|
+
}
|
|
8607
8752
|
}
|
|
8608
8753
|
}
|
|
8609
8754
|
function needTransition(parentSuspense, transition) {
|
|
@@ -8643,8 +8788,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
|
|
|
8643
8788
|
}
|
|
8644
8789
|
function locateNonHydratedAsyncRoot(instance) {
|
|
8645
8790
|
const subComponent = instance.subTree && instance.subTree.component;
|
|
8646
|
-
if (subComponent)
|
|
8647
|
-
|
|
8791
|
+
if (subComponent) {
|
|
8792
|
+
if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
|
|
8793
|
+
else return locateNonHydratedAsyncRoot(subComponent);
|
|
8794
|
+
}
|
|
8648
8795
|
}
|
|
8649
8796
|
function invalidateMount(hooks) {
|
|
8650
8797
|
if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
|
|
@@ -8663,13 +8810,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
|
|
|
8663
8810
|
function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
|
|
8664
8811
|
const performRemove = () => {
|
|
8665
8812
|
remove();
|
|
8666
|
-
if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
|
|
8813
|
+
if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
|
|
8667
8814
|
};
|
|
8668
8815
|
if (force || isElement && transition && !transition.persisted) {
|
|
8669
8816
|
const { leave, delayLeave } = transition;
|
|
8670
8817
|
const performLeave = () => {
|
|
8818
|
+
const wasLeaving = el._isLeaving || !!el[leaveCbKey];
|
|
8671
8819
|
if (el._isLeaving && force) el[leaveCbKey](true);
|
|
8672
|
-
|
|
8820
|
+
if (force && transition.persisted && !wasLeaving) remove();
|
|
8821
|
+
else leave(el, performRemove);
|
|
8673
8822
|
};
|
|
8674
8823
|
if (delayLeave) delayLeave(el, performRemove, performLeave);
|
|
8675
8824
|
else performLeave();
|
|
@@ -8765,7 +8914,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8765
8914
|
patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8766
8915
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8767
8916
|
else if (isInFallback) {
|
|
8768
|
-
if (!isHydrating) {
|
|
8917
|
+
if (!isHydrating && !suspense.isFallbackMountPending) {
|
|
8769
8918
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8770
8919
|
setActiveBranch(suspense, newFallback);
|
|
8771
8920
|
}
|
|
@@ -8786,7 +8935,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
|
|
|
8786
8935
|
if (isInFallback) {
|
|
8787
8936
|
patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
|
|
8788
8937
|
if (suspense.deps <= 0) suspense.resolve();
|
|
8789
|
-
else {
|
|
8938
|
+
else if (!suspense.isFallbackMountPending) {
|
|
8790
8939
|
patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
8791
8940
|
setActiveBranch(suspense, newFallback);
|
|
8792
8941
|
}
|
|
@@ -8912,8 +9061,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
|
|
|
8912
9061
|
const mountFallback = () => {
|
|
8913
9062
|
suspense.isFallbackMountPending = false;
|
|
8914
9063
|
if (!suspense.isInFallback) return;
|
|
8915
|
-
|
|
8916
|
-
|
|
9064
|
+
const latestFallback = suspense.vnode.ssFallback;
|
|
9065
|
+
patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
|
|
9066
|
+
setActiveBranch(suspense, latestFallback);
|
|
8917
9067
|
};
|
|
8918
9068
|
const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
|
|
8919
9069
|
if (delayEnter) {
|
|
@@ -8989,9 +9139,10 @@ function normalizeSuspenseSlot(s) {
|
|
|
8989
9139
|
return s;
|
|
8990
9140
|
}
|
|
8991
9141
|
function queueEffectWithSuspense(fn, id, suspense) {
|
|
8992
|
-
if (suspense && suspense.pendingBranch)
|
|
8993
|
-
|
|
8994
|
-
|
|
9142
|
+
if (suspense && suspense.pendingBranch) {
|
|
9143
|
+
if (isArray(fn)) suspense.effects.push(...fn);
|
|
9144
|
+
else suspense.effects.push(fn);
|
|
9145
|
+
} else queuePostFlushCb(fn, id);
|
|
8995
9146
|
}
|
|
8996
9147
|
function setActiveBranch(suspense, branch) {
|
|
8997
9148
|
suspense.activeBranch = branch;
|
|
@@ -9227,8 +9378,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
|
|
|
9227
9378
|
if (isVNode(type)) {
|
|
9228
9379
|
const cloned = cloneVNode(type, props, true);
|
|
9229
9380
|
if (children) normalizeChildren(cloned, children);
|
|
9230
|
-
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock)
|
|
9231
|
-
|
|
9381
|
+
if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
|
|
9382
|
+
if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
|
|
9383
|
+
else currentBlock.push(cloned);
|
|
9384
|
+
}
|
|
9232
9385
|
cloned.patchFlag = -2;
|
|
9233
9386
|
return cloned;
|
|
9234
9387
|
}
|
|
@@ -9289,7 +9442,9 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
|
|
|
9289
9442
|
ce: vnode.ce,
|
|
9290
9443
|
vi: vnode.vi,
|
|
9291
9444
|
vs: cloneVaporSlotMeta(vnode),
|
|
9292
|
-
vb: vnode.vb
|
|
9445
|
+
vb: vnode.vb,
|
|
9446
|
+
ibu: vnode.ibu,
|
|
9447
|
+
iu: vnode.iu
|
|
9293
9448
|
};
|
|
9294
9449
|
if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
|
|
9295
9450
|
defineLegacyVNodeProperties(cloned);
|
|
@@ -9353,25 +9508,28 @@ function normalizeChildren(vnode, children) {
|
|
|
9353
9508
|
const { shapeFlag } = vnode;
|
|
9354
9509
|
if (children == null) children = null;
|
|
9355
9510
|
else if (isArray(children)) type = 16;
|
|
9356
|
-
else if (typeof children === "object")
|
|
9357
|
-
|
|
9358
|
-
|
|
9359
|
-
|
|
9360
|
-
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
9366
|
-
|
|
9367
|
-
|
|
9368
|
-
|
|
9369
|
-
|
|
9370
|
-
|
|
9371
|
-
|
|
9511
|
+
else if (typeof children === "object") {
|
|
9512
|
+
if (shapeFlag & 65) {
|
|
9513
|
+
const slot = children.default;
|
|
9514
|
+
if (slot) {
|
|
9515
|
+
slot._c && (slot._d = false);
|
|
9516
|
+
normalizeChildren(vnode, slot());
|
|
9517
|
+
slot._c && (slot._d = true);
|
|
9518
|
+
}
|
|
9519
|
+
return;
|
|
9520
|
+
} else {
|
|
9521
|
+
type = 32;
|
|
9522
|
+
const slotFlag = children._;
|
|
9523
|
+
if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
|
|
9524
|
+
else if (slotFlag === 3 && currentRenderingInstance) {
|
|
9525
|
+
if (currentRenderingInstance.slots._ === 1) children._ = 1;
|
|
9526
|
+
else {
|
|
9527
|
+
children._ = 2;
|
|
9528
|
+
vnode.patchFlag |= 1024;
|
|
9529
|
+
}
|
|
9530
|
+
}
|
|
9372
9531
|
}
|
|
9373
|
-
}
|
|
9374
|
-
else if (isFunction(children)) {
|
|
9532
|
+
} else if (isFunction(children)) {
|
|
9375
9533
|
if (shapeFlag & 65) {
|
|
9376
9534
|
normalizeChildren(vnode, { default: children });
|
|
9377
9535
|
return;
|
|
@@ -9489,7 +9647,7 @@ const useInstanceOption = (key, silent = false) => {
|
|
|
9489
9647
|
};
|
|
9490
9648
|
//#endregion
|
|
9491
9649
|
//#region packages/runtime-core/src/component.ts
|
|
9492
|
-
const emptyAppContext =
|
|
9650
|
+
const emptyAppContext = /*@__PURE__*/ createAppContext();
|
|
9493
9651
|
let uid = 0;
|
|
9494
9652
|
function createComponentInstance(vnode, parent, suspense) {
|
|
9495
9653
|
const type = vnode.type;
|
|
@@ -9634,9 +9792,10 @@ function setupStatefulComponent(instance, isSSR) {
|
|
|
9634
9792
|
} else finishComponentSetup(instance, isSSR);
|
|
9635
9793
|
}
|
|
9636
9794
|
function handleSetupResult(instance, setupResult, isSSR) {
|
|
9637
|
-
if (isFunction(setupResult))
|
|
9638
|
-
|
|
9639
|
-
|
|
9795
|
+
if (isFunction(setupResult)) {
|
|
9796
|
+
if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
|
|
9797
|
+
else instance.render = setupResult;
|
|
9798
|
+
} else if (isObject(setupResult)) {
|
|
9640
9799
|
if (isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
|
|
9641
9800
|
instance.devtoolsRawSetupState = setupResult;
|
|
9642
9801
|
instance.setupState = proxyRefs(setupResult);
|
|
@@ -9691,10 +9850,12 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
|
|
|
9691
9850
|
restoreCurrentInstance(prevInstance);
|
|
9692
9851
|
}
|
|
9693
9852
|
}
|
|
9694
|
-
if (!Component.render && instance.render === NOOP && !isSSR)
|
|
9853
|
+
if (!Component.render && instance.render === NOOP && !isSSR) {
|
|
9854
|
+
if (!compile$1 && Component.template)
|
|
9695
9855
|
/* v8 ignore start */
|
|
9696
|
-
|
|
9697
|
-
|
|
9856
|
+
warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
|
|
9857
|
+
else warn$1(`Component is missing template or render function: `, Component);
|
|
9858
|
+
}
|
|
9698
9859
|
}
|
|
9699
9860
|
const attrsProxyHandlers = {
|
|
9700
9861
|
get(target, key) {
|
|
@@ -9802,11 +9963,12 @@ function h(type, propsOrChildren, children) {
|
|
|
9802
9963
|
try {
|
|
9803
9964
|
setBlockTracking(-1);
|
|
9804
9965
|
const l = arguments.length;
|
|
9805
|
-
if (l === 2)
|
|
9806
|
-
if (
|
|
9807
|
-
|
|
9808
|
-
|
|
9809
|
-
|
|
9966
|
+
if (l === 2) {
|
|
9967
|
+
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
|
|
9968
|
+
if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
|
|
9969
|
+
return createVNode(type, propsOrChildren);
|
|
9970
|
+
} else return createVNode(type, null, propsOrChildren);
|
|
9971
|
+
} else {
|
|
9810
9972
|
if (l > 3) children = Array.prototype.slice.call(arguments, 2);
|
|
9811
9973
|
else if (l === 3 && isVNode(children)) children = [children];
|
|
9812
9974
|
return createVNode(type, propsOrChildren, children);
|
|
@@ -9998,7 +10160,7 @@ function isMemoSame(cached, memo) {
|
|
|
9998
10160
|
}
|
|
9999
10161
|
//#endregion
|
|
10000
10162
|
//#region packages/runtime-core/src/index.ts
|
|
10001
|
-
const version = "3.6.0-rc.
|
|
10163
|
+
const version = "3.6.0-rc.7";
|
|
10002
10164
|
const warn = warn$1;
|
|
10003
10165
|
/**
|
|
10004
10166
|
* Runtime error messages. Only exposed in dev or esm builds.
|
|
@@ -10043,7 +10205,7 @@ const DeprecationTypes = DeprecationTypes$1;
|
|
|
10043
10205
|
let policy = void 0;
|
|
10044
10206
|
const tt = typeof window !== "undefined" && window.trustedTypes;
|
|
10045
10207
|
if (tt) try {
|
|
10046
|
-
policy =
|
|
10208
|
+
policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
|
|
10047
10209
|
} catch (e) {
|
|
10048
10210
|
warn(`Error creating trusted types policy: ${e}`);
|
|
10049
10211
|
}
|
|
@@ -10051,7 +10213,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
|
|
|
10051
10213
|
const svgNS = "http://www.w3.org/2000/svg";
|
|
10052
10214
|
const mathmlNS = "http://www.w3.org/1998/Math/MathML";
|
|
10053
10215
|
const doc = typeof document !== "undefined" ? document : null;
|
|
10054
|
-
const templateContainer = doc &&
|
|
10216
|
+
const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
|
|
10055
10217
|
const nodeOps = {
|
|
10056
10218
|
insert: (child, parent, anchor) => {
|
|
10057
10219
|
parent.insertBefore(child, anchor || null);
|
|
@@ -10125,7 +10287,7 @@ const DOMTransitionPropsValidators = {
|
|
|
10125
10287
|
leaveActiveClass: String,
|
|
10126
10288
|
leaveToClass: String
|
|
10127
10289
|
};
|
|
10128
|
-
const TransitionPropsValidators =
|
|
10290
|
+
const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
|
|
10129
10291
|
/**
|
|
10130
10292
|
* Wrap logic that attaches extra properties to Transition in a function
|
|
10131
10293
|
* so that it can be annotated as pure
|
|
@@ -10140,7 +10302,7 @@ const decorate$1 = (t) => {
|
|
|
10140
10302
|
* DOM Transition is a higher-order-component based on the platform-agnostic
|
|
10141
10303
|
* base Transition component, with DOM-specific logic.
|
|
10142
10304
|
*/
|
|
10143
|
-
const Transition =
|
|
10305
|
+
const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
|
|
10144
10306
|
/**
|
|
10145
10307
|
* #3227 Incoming hooks may be merged into arrays when wrapping Transition
|
|
10146
10308
|
* with custom HOCs.
|
|
@@ -10380,14 +10542,15 @@ const vShow = {
|
|
|
10380
10542
|
},
|
|
10381
10543
|
updated(el, { value, oldValue }, { transition }) {
|
|
10382
10544
|
if (!value === !oldValue) return;
|
|
10383
|
-
if (transition)
|
|
10384
|
-
|
|
10385
|
-
|
|
10386
|
-
|
|
10387
|
-
|
|
10388
|
-
|
|
10389
|
-
|
|
10390
|
-
|
|
10545
|
+
if (transition) {
|
|
10546
|
+
if (value) {
|
|
10547
|
+
transition.beforeEnter(el);
|
|
10548
|
+
setDisplay(el, true);
|
|
10549
|
+
transition.enter(el);
|
|
10550
|
+
} else transition.leave(el, () => {
|
|
10551
|
+
setDisplay(el, false);
|
|
10552
|
+
});
|
|
10553
|
+
} else setDisplay(el, value);
|
|
10391
10554
|
},
|
|
10392
10555
|
beforeUnmount(el, { value }) {
|
|
10393
10556
|
setDisplay(el, value);
|
|
@@ -10418,11 +10581,13 @@ function patchStyle(el, prev, next) {
|
|
|
10418
10581
|
const isCssString = isString(next);
|
|
10419
10582
|
let hasControlledDisplay = false;
|
|
10420
10583
|
if (next && !isCssString) {
|
|
10421
|
-
if (prev)
|
|
10422
|
-
|
|
10423
|
-
|
|
10424
|
-
|
|
10425
|
-
|
|
10584
|
+
if (prev) {
|
|
10585
|
+
if (!isString(prev)) {
|
|
10586
|
+
for (const key in prev) if (next[key] == null) setStyle(style, key, "");
|
|
10587
|
+
} else for (const prevStyle of prev.split(";")) {
|
|
10588
|
+
const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
|
|
10589
|
+
if (next[key] == null) setStyle(style, key, "");
|
|
10590
|
+
}
|
|
10426
10591
|
}
|
|
10427
10592
|
for (const key in next) {
|
|
10428
10593
|
if (key === "display") hasControlledDisplay = true;
|
|
@@ -10451,8 +10616,10 @@ function setStyle(style, name, rawVal) {
|
|
|
10451
10616
|
else {
|
|
10452
10617
|
const val = rawVal == null ? "" : String(rawVal);
|
|
10453
10618
|
if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
|
|
10454
|
-
if (name.startsWith("--"))
|
|
10455
|
-
|
|
10619
|
+
if (name.startsWith("--")) {
|
|
10620
|
+
if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
|
|
10621
|
+
else style.setProperty(name, val);
|
|
10622
|
+
} else {
|
|
10456
10623
|
const prefixed = autoPrefix(style, name);
|
|
10457
10624
|
if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
|
|
10458
10625
|
else style[prefixed] = val;
|
|
@@ -10489,15 +10656,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
|
|
|
10489
10656
|
//#region packages/runtime-dom/src/modules/attrs.ts
|
|
10490
10657
|
const xlinkNS = "http://www.w3.org/1999/xlink";
|
|
10491
10658
|
function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
|
|
10492
|
-
if (isSVG && key.startsWith("xlink:"))
|
|
10493
|
-
|
|
10494
|
-
|
|
10659
|
+
if (isSVG && key.startsWith("xlink:")) {
|
|
10660
|
+
if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
|
|
10661
|
+
else el.setAttributeNS(xlinkNS, key, value);
|
|
10662
|
+
} else {
|
|
10495
10663
|
if (compatCoerceAttr(el, key, value, instance)) return;
|
|
10496
10664
|
if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
|
|
10497
10665
|
else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
|
|
10498
10666
|
}
|
|
10499
10667
|
}
|
|
10500
|
-
const isEnumeratedAttr =
|
|
10668
|
+
const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
|
|
10501
10669
|
function compatCoerceAttr(el, key, value, instance = null) {
|
|
10502
10670
|
if (isEnumeratedAttr(key)) {
|
|
10503
10671
|
const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
|
|
@@ -10589,7 +10757,7 @@ function parseEventName(name) {
|
|
|
10589
10757
|
return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
|
|
10590
10758
|
}
|
|
10591
10759
|
let cachedNow = 0;
|
|
10592
|
-
const p =
|
|
10760
|
+
const p = /*@__PURE__*/ Promise.resolve();
|
|
10593
10761
|
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
|
|
10594
10762
|
function createInvoker(initialValue, instance) {
|
|
10595
10763
|
const invoker = (e) => {
|
|
@@ -10657,7 +10825,7 @@ function shouldSetAsPropForVueCE(el, key) {
|
|
|
10657
10825
|
//#endregion
|
|
10658
10826
|
//#region packages/runtime-dom/src/apiCustomElement.ts
|
|
10659
10827
|
const REMOVAL = {};
|
|
10660
|
-
|
|
10828
|
+
/*@__NO_SIDE_EFFECTS__*/
|
|
10661
10829
|
function defineCustomElement(options, extraOptions, _createApp) {
|
|
10662
10830
|
let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
|
|
10663
10831
|
if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
|
|
@@ -10706,12 +10874,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10706
10874
|
this._parent = parent;
|
|
10707
10875
|
break;
|
|
10708
10876
|
}
|
|
10709
|
-
if (!this._instance)
|
|
10710
|
-
|
|
10711
|
-
this._pendingResolve =
|
|
10712
|
-
|
|
10713
|
-
|
|
10714
|
-
|
|
10877
|
+
if (!this._instance) {
|
|
10878
|
+
if (this._resolved) this._mountComponent(this._def);
|
|
10879
|
+
else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
|
|
10880
|
+
this._pendingResolve = void 0;
|
|
10881
|
+
if (this.isConnected) return this._resolveDef();
|
|
10882
|
+
});
|
|
10883
|
+
else this._resolveDef();
|
|
10884
|
+
}
|
|
10715
10885
|
}
|
|
10716
10886
|
disconnectedCallback() {
|
|
10717
10887
|
this._connected = false;
|
|
@@ -10927,13 +11097,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10927
11097
|
_renderSlots() {
|
|
10928
11098
|
const outlets = this._getSlots();
|
|
10929
11099
|
const scopeId = this._instance.type.__scopeId;
|
|
10930
|
-
const slotReplacements = /* @__PURE__ */ new Map();
|
|
10931
11100
|
for (let i = 0; i < outlets.length; i++) {
|
|
10932
11101
|
const o = outlets[i];
|
|
10933
11102
|
const slotName = o.getAttribute("name") || "default";
|
|
10934
11103
|
const content = this._slots[slotName];
|
|
10935
11104
|
const parent = o.parentNode;
|
|
10936
|
-
const replacementNodes = [];
|
|
10937
11105
|
if (content) for (const n of content) {
|
|
10938
11106
|
if (scopeId && n.nodeType === 1) {
|
|
10939
11107
|
const id = scopeId + "-s";
|
|
@@ -10943,20 +11111,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10943
11111
|
while (child = walker.nextNode()) child.setAttribute(id, "");
|
|
10944
11112
|
}
|
|
10945
11113
|
parent.insertBefore(n, o);
|
|
10946
|
-
replacementNodes.push(n);
|
|
10947
|
-
}
|
|
10948
|
-
else while (o.firstChild) {
|
|
10949
|
-
const child = o.firstChild;
|
|
10950
|
-
parent.insertBefore(child, o);
|
|
10951
|
-
replacementNodes.push(child);
|
|
10952
11114
|
}
|
|
11115
|
+
else while (o.firstChild) parent.insertBefore(o.firstChild, o);
|
|
10953
11116
|
parent.removeChild(o);
|
|
10954
|
-
slotReplacements.set(o, {
|
|
10955
|
-
nodes: replacementNodes,
|
|
10956
|
-
usedFallback: !content
|
|
10957
|
-
});
|
|
10958
11117
|
}
|
|
10959
|
-
this._updateSlotNodes(slotReplacements);
|
|
10960
11118
|
}
|
|
10961
11119
|
/**
|
|
10962
11120
|
* @internal
|
|
@@ -10995,7 +11153,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
|
|
|
10995
11153
|
* @internal
|
|
10996
11154
|
*/
|
|
10997
11155
|
_hasShadowRoot() {
|
|
10998
|
-
return this.
|
|
11156
|
+
return this._root !== this;
|
|
10999
11157
|
}
|
|
11000
11158
|
/**
|
|
11001
11159
|
* @internal
|
|
@@ -11040,10 +11198,6 @@ var VueElement = class extends VueElementBase {
|
|
|
11040
11198
|
if (this._instance && this._instance.ce) this._instance.ce = void 0;
|
|
11041
11199
|
this._app = this._instance = null;
|
|
11042
11200
|
}
|
|
11043
|
-
/**
|
|
11044
|
-
* Only called when shadowRoot is false
|
|
11045
|
-
*/
|
|
11046
|
-
_updateSlotNodes(replacements) {}
|
|
11047
11201
|
_createVNode() {
|
|
11048
11202
|
const baseProps = {};
|
|
11049
11203
|
if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
|
|
@@ -11110,7 +11264,7 @@ const decorate = (t) => {
|
|
|
11110
11264
|
};
|
|
11111
11265
|
const TransitionGroup = /* @__PURE__ */ decorate({
|
|
11112
11266
|
name: "TransitionGroup",
|
|
11113
|
-
props:
|
|
11267
|
+
props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
|
|
11114
11268
|
tag: String,
|
|
11115
11269
|
moveClass: String
|
|
11116
11270
|
}),
|
|
@@ -11392,19 +11546,39 @@ const vModelSelectInit = (el, value, number, set) => {
|
|
|
11392
11546
|
el._modelValue = value;
|
|
11393
11547
|
addEventListener(el, "change", () => {
|
|
11394
11548
|
const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
|
|
11395
|
-
|
|
11396
|
-
el.
|
|
11397
|
-
|
|
11398
|
-
|
|
11399
|
-
|
|
11549
|
+
const multiple = el.multiple;
|
|
11550
|
+
const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
|
|
11551
|
+
const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
|
|
11552
|
+
try {
|
|
11553
|
+
(set || el[assignKey])(assignedValue);
|
|
11554
|
+
} finally {
|
|
11555
|
+
nextTick(() => {
|
|
11556
|
+
if (el._pendingValue === pending) el._pendingValue = void 0;
|
|
11557
|
+
});
|
|
11558
|
+
}
|
|
11400
11559
|
});
|
|
11401
11560
|
};
|
|
11561
|
+
function isSameSelectValue(value, assignedValue, multiple) {
|
|
11562
|
+
if (!multiple) return looseEqual(value, assignedValue);
|
|
11563
|
+
if (isArray(value)) return looseEqual(value, assignedValue);
|
|
11564
|
+
if (isSet(value)) {
|
|
11565
|
+
if (value.size !== assignedValue.length) return false;
|
|
11566
|
+
for (const item of assignedValue) if (!value.has(item)) return false;
|
|
11567
|
+
return true;
|
|
11568
|
+
}
|
|
11569
|
+
return false;
|
|
11570
|
+
}
|
|
11402
11571
|
/**
|
|
11403
11572
|
* @internal
|
|
11404
11573
|
*/
|
|
11405
11574
|
const vModelSetSelected = (el, value) => {
|
|
11406
11575
|
el._modelValue = value;
|
|
11407
|
-
|
|
11576
|
+
const pending = el._pendingValue;
|
|
11577
|
+
el._pendingValue = void 0;
|
|
11578
|
+
if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
|
|
11579
|
+
setSelected(el, value);
|
|
11580
|
+
};
|
|
11581
|
+
function setSelected(el, value) {
|
|
11408
11582
|
const isMultiple = el.multiple;
|
|
11409
11583
|
const isArrayValue = isArray(value);
|
|
11410
11584
|
if (isMultiple && !isArrayValue && !isSet(value)) {
|
|
@@ -11414,18 +11588,19 @@ const vModelSetSelected = (el, value) => {
|
|
|
11414
11588
|
for (let i = 0, l = el.options.length; i < l; i++) {
|
|
11415
11589
|
const option = el.options[i];
|
|
11416
11590
|
const optionValue = getValue(option);
|
|
11417
|
-
if (isMultiple)
|
|
11418
|
-
|
|
11419
|
-
|
|
11420
|
-
|
|
11421
|
-
|
|
11422
|
-
|
|
11591
|
+
if (isMultiple) {
|
|
11592
|
+
if (isArrayValue) {
|
|
11593
|
+
const optionType = typeof optionValue;
|
|
11594
|
+
if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
|
|
11595
|
+
else option.selected = looseIndexOf(value, optionValue) > -1;
|
|
11596
|
+
} else option.selected = value.has(optionValue);
|
|
11597
|
+
} else if (looseEqual(getValue(option), value)) {
|
|
11423
11598
|
if (el.selectedIndex !== i) el.selectedIndex = i;
|
|
11424
11599
|
return;
|
|
11425
11600
|
}
|
|
11426
11601
|
}
|
|
11427
11602
|
if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
|
|
11428
|
-
}
|
|
11603
|
+
}
|
|
11429
11604
|
/**
|
|
11430
11605
|
* @internal retrieve raw value set via :value bindings
|
|
11431
11606
|
*/
|
|
@@ -11739,7 +11914,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
|
|
|
11739
11914
|
withModifiers: () => withModifiers,
|
|
11740
11915
|
withScopeId: () => withScopeId
|
|
11741
11916
|
});
|
|
11742
|
-
const rendererOptions =
|
|
11917
|
+
const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
|
|
11743
11918
|
let renderer;
|
|
11744
11919
|
let enabledHydration = false;
|
|
11745
11920
|
function ensureRenderer() {
|
|
@@ -12120,7 +12295,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
|
|
|
12120
12295
|
//#endregion
|
|
12121
12296
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
|
|
12122
12297
|
var _a;
|
|
12123
|
-
const decodeMap = new Map([
|
|
12298
|
+
const decodeMap = /* @__PURE__ */ new Map([
|
|
12124
12299
|
[0, 65533],
|
|
12125
12300
|
[128, 8364],
|
|
12126
12301
|
[130, 8218],
|
|
@@ -12188,7 +12363,7 @@ function decodeBase64(input) {
|
|
|
12188
12363
|
}
|
|
12189
12364
|
//#endregion
|
|
12190
12365
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
|
|
12191
|
-
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");
|
|
12366
|
+
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");
|
|
12192
12367
|
//#endregion
|
|
12193
12368
|
//#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
|
|
12194
12369
|
/**
|
|
@@ -12582,7 +12757,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
|
|
|
12582
12757
|
}
|
|
12583
12758
|
return -1;
|
|
12584
12759
|
}
|
|
12585
|
-
const htmlDecoder = /*
|
|
12760
|
+
const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
|
|
12586
12761
|
/**
|
|
12587
12762
|
* Decodes an HTML string.
|
|
12588
12763
|
*
|
|
@@ -12774,13 +12949,14 @@ var Tokenizer = class {
|
|
|
12774
12949
|
}
|
|
12775
12950
|
}
|
|
12776
12951
|
stateInterpolationOpen(c) {
|
|
12777
|
-
if (c === this.delimiterOpen[this.delimiterIndex])
|
|
12778
|
-
|
|
12779
|
-
|
|
12780
|
-
|
|
12781
|
-
|
|
12782
|
-
|
|
12783
|
-
|
|
12952
|
+
if (c === this.delimiterOpen[this.delimiterIndex]) {
|
|
12953
|
+
if (this.delimiterIndex === this.delimiterOpen.length - 1) {
|
|
12954
|
+
const start = this.index + 1 - this.delimiterOpen.length;
|
|
12955
|
+
if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
|
|
12956
|
+
this.state = 3;
|
|
12957
|
+
this.sectionStart = start;
|
|
12958
|
+
} else this.delimiterIndex++;
|
|
12959
|
+
} else if (this.inRCDATA) {
|
|
12784
12960
|
this.state = 32;
|
|
12785
12961
|
this.stateInRCDATA(c);
|
|
12786
12962
|
} else {
|
|
@@ -12796,13 +12972,14 @@ var Tokenizer = class {
|
|
|
12796
12972
|
}
|
|
12797
12973
|
}
|
|
12798
12974
|
stateInterpolationClose(c) {
|
|
12799
|
-
if (c === this.delimiterClose[this.delimiterIndex])
|
|
12800
|
-
|
|
12801
|
-
|
|
12802
|
-
|
|
12803
|
-
|
|
12804
|
-
|
|
12805
|
-
|
|
12975
|
+
if (c === this.delimiterClose[this.delimiterIndex]) {
|
|
12976
|
+
if (this.delimiterIndex === this.delimiterClose.length - 1) {
|
|
12977
|
+
this.cbs.oninterpolation(this.sectionStart, this.index + 1);
|
|
12978
|
+
if (this.inRCDATA) this.state = 32;
|
|
12979
|
+
else this.state = 1;
|
|
12980
|
+
this.sectionStart = this.index + 1;
|
|
12981
|
+
} else this.delimiterIndex++;
|
|
12982
|
+
} else {
|
|
12806
12983
|
this.state = 3;
|
|
12807
12984
|
this.stateInterpolation(c);
|
|
12808
12985
|
}
|
|
@@ -12918,9 +13095,10 @@ var Tokenizer = class {
|
|
|
12918
13095
|
this.sectionStart = this.index;
|
|
12919
13096
|
if (this.mode === 0) this.state = 6;
|
|
12920
13097
|
else if (this.inSFCRoot) this.state = 34;
|
|
12921
|
-
else if (!this.inXML)
|
|
12922
|
-
|
|
12923
|
-
|
|
13098
|
+
else if (!this.inXML) {
|
|
13099
|
+
if (c === 116) this.state = 30;
|
|
13100
|
+
else this.state = c === 115 ? 29 : 6;
|
|
13101
|
+
} else this.state = 6;
|
|
12924
13102
|
} else if (c === 47) this.state = 8;
|
|
12925
13103
|
else {
|
|
12926
13104
|
this.state = 1;
|
|
@@ -13287,9 +13465,7 @@ var Tokenizer = class {
|
|
|
13287
13465
|
case 24:
|
|
13288
13466
|
this.stateInProcessingInstruction(c);
|
|
13289
13467
|
break;
|
|
13290
|
-
case 33:
|
|
13291
|
-
this.stateInEntity();
|
|
13292
|
-
break;
|
|
13468
|
+
case 33: this.stateInEntity();
|
|
13293
13469
|
}
|
|
13294
13470
|
this.index++;
|
|
13295
13471
|
}
|
|
@@ -13322,9 +13498,10 @@ var Tokenizer = class {
|
|
|
13322
13498
|
handleTrailingData() {
|
|
13323
13499
|
const endIndex = this.buffer.length;
|
|
13324
13500
|
if (this.sectionStart >= endIndex) return;
|
|
13325
|
-
if (this.state === 28)
|
|
13326
|
-
|
|
13327
|
-
|
|
13501
|
+
if (this.state === 28) {
|
|
13502
|
+
if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
|
|
13503
|
+
else this.cbs.oncomment(this.sectionStart, endIndex);
|
|
13504
|
+
} 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);
|
|
13328
13505
|
}
|
|
13329
13506
|
emitCodePoint(cp, consumed) {
|
|
13330
13507
|
if (this.baseState !== 1 && this.baseState !== 32) {
|
|
@@ -13485,16 +13662,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
|
|
|
13485
13662
|
const isRefed = isReferencedIdentifier(node, parent, parentStack);
|
|
13486
13663
|
if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
|
|
13487
13664
|
} else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
|
|
13488
|
-
else if (isFunctionType(node))
|
|
13489
|
-
|
|
13490
|
-
|
|
13491
|
-
else
|
|
13492
|
-
|
|
13493
|
-
|
|
13494
|
-
else if (node.type === "
|
|
13495
|
-
|
|
13496
|
-
|
|
13497
|
-
else
|
|
13665
|
+
else if (isFunctionType(node)) {
|
|
13666
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13667
|
+
else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13668
|
+
} else if (node.type === "BlockStatement") {
|
|
13669
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13670
|
+
else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13671
|
+
} else if (node.type === "SwitchStatement") {
|
|
13672
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13673
|
+
else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13674
|
+
} else if (node.type === "CatchClause" && node.param) {
|
|
13675
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13676
|
+
else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
|
|
13677
|
+
} else if (isForStatement(node)) {
|
|
13678
|
+
if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
|
|
13679
|
+
else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
|
|
13680
|
+
}
|
|
13498
13681
|
},
|
|
13499
13682
|
leave(node, parent) {
|
|
13500
13683
|
parent && parentStack.pop();
|
|
@@ -13586,9 +13769,7 @@ function extractIdentifiers(param, nodes = []) {
|
|
|
13586
13769
|
case "RestElement":
|
|
13587
13770
|
extractIdentifiers(param.argument, nodes);
|
|
13588
13771
|
break;
|
|
13589
|
-
case "AssignmentPattern":
|
|
13590
|
-
extractIdentifiers(param.left, nodes);
|
|
13591
|
-
break;
|
|
13772
|
+
case "AssignmentPattern": extractIdentifiers(param.left, nodes);
|
|
13592
13773
|
}
|
|
13593
13774
|
return nodes;
|
|
13594
13775
|
}
|
|
@@ -13784,7 +13965,7 @@ function isTemplateNode(node) {
|
|
|
13784
13965
|
function isSlotOutlet(node) {
|
|
13785
13966
|
return node.type === 1 && node.tagType === 2;
|
|
13786
13967
|
}
|
|
13787
|
-
const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13968
|
+
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
|
|
13788
13969
|
function getUnnormalizedProps(props, callPath = []) {
|
|
13789
13970
|
if (props && !isString(props) && props.type === 14) {
|
|
13790
13971
|
const callee = props.callee;
|
|
@@ -13827,9 +14008,10 @@ function injectProp(node, prop, context) {
|
|
|
13827
14008
|
propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
|
|
13828
14009
|
if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
|
|
13829
14010
|
}
|
|
13830
|
-
if (node.type === 13)
|
|
13831
|
-
|
|
13832
|
-
|
|
14011
|
+
if (node.type === 13) {
|
|
14012
|
+
if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
14013
|
+
else node.props = propsWithInjection;
|
|
14014
|
+
} else if (parentCall) parentCall.arguments[0] = propsWithInjection;
|
|
13833
14015
|
else node.arguments[2] = propsWithInjection;
|
|
13834
14016
|
}
|
|
13835
14017
|
function injectSlotKey(node, prop) {
|
|
@@ -14069,26 +14251,28 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
14069
14251
|
onattribend(quote, end) {
|
|
14070
14252
|
if (currentOpenTag && currentProp) {
|
|
14071
14253
|
setLocEnd(currentProp.loc, end);
|
|
14072
|
-
if (quote !== 0)
|
|
14073
|
-
if (currentProp.
|
|
14074
|
-
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
|
|
14078
|
-
|
|
14079
|
-
|
|
14080
|
-
|
|
14081
|
-
|
|
14082
|
-
|
|
14083
|
-
|
|
14084
|
-
|
|
14085
|
-
|
|
14086
|
-
|
|
14087
|
-
|
|
14088
|
-
|
|
14089
|
-
|
|
14090
|
-
currentProp.name = "
|
|
14091
|
-
|
|
14254
|
+
if (quote !== 0) {
|
|
14255
|
+
if (currentProp.type === 6) {
|
|
14256
|
+
if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
|
|
14257
|
+
if (quote === 1 && !currentAttrValue) emitError(13, end);
|
|
14258
|
+
currentProp.value = {
|
|
14259
|
+
type: 2,
|
|
14260
|
+
content: currentAttrValue,
|
|
14261
|
+
loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
|
|
14262
|
+
};
|
|
14263
|
+
if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
|
|
14264
|
+
} else {
|
|
14265
|
+
let expParseMode = 0;
|
|
14266
|
+
if (currentProp.name === "for") expParseMode = 3;
|
|
14267
|
+
else if (currentProp.name === "slot") expParseMode = 1;
|
|
14268
|
+
else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
|
|
14269
|
+
currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
|
|
14270
|
+
if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
|
|
14271
|
+
let syncIndex = -1;
|
|
14272
|
+
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)) {
|
|
14273
|
+
currentProp.name = "model";
|
|
14274
|
+
currentProp.modifiers.splice(syncIndex, 1);
|
|
14275
|
+
}
|
|
14092
14276
|
}
|
|
14093
14277
|
}
|
|
14094
14278
|
if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
|
|
@@ -14131,10 +14315,7 @@ const tokenizer = new Tokenizer(stack, {
|
|
|
14131
14315
|
case 18:
|
|
14132
14316
|
case 19:
|
|
14133
14317
|
case 20:
|
|
14134
|
-
case 21:
|
|
14135
|
-
emitError(9, end);
|
|
14136
|
-
break;
|
|
14137
|
-
default: break;
|
|
14318
|
+
case 21: emitError(9, end);
|
|
14138
14319
|
}
|
|
14139
14320
|
for (let index = 0; index < stack.length; index++) {
|
|
14140
14321
|
onCloseTag(stack[index], end - 1);
|
|
@@ -14280,7 +14461,7 @@ function backTrack(index, c) {
|
|
|
14280
14461
|
while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
|
|
14281
14462
|
return i;
|
|
14282
14463
|
}
|
|
14283
|
-
const specialTemplateDir = new Set([
|
|
14464
|
+
const specialTemplateDir = /* @__PURE__ */ new Set([
|
|
14284
14465
|
"if",
|
|
14285
14466
|
"else",
|
|
14286
14467
|
"else-if",
|
|
@@ -14316,16 +14497,18 @@ function condenseWhitespace(nodes) {
|
|
|
14316
14497
|
let removedWhitespace = false;
|
|
14317
14498
|
for (let i = 0; i < nodes.length; i++) {
|
|
14318
14499
|
const node = nodes[i];
|
|
14319
|
-
if (node.type === 2)
|
|
14320
|
-
if (
|
|
14321
|
-
|
|
14322
|
-
|
|
14323
|
-
|
|
14324
|
-
|
|
14325
|
-
|
|
14326
|
-
|
|
14327
|
-
|
|
14328
|
-
|
|
14500
|
+
if (node.type === 2) {
|
|
14501
|
+
if (!inPre) {
|
|
14502
|
+
if (isAllWhitespace(node.content)) {
|
|
14503
|
+
const prev = nodes[i - 1] && nodes[i - 1].type;
|
|
14504
|
+
const next = nodes[i + 1] && nodes[i + 1].type;
|
|
14505
|
+
if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
|
|
14506
|
+
removedWhitespace = true;
|
|
14507
|
+
nodes[i] = null;
|
|
14508
|
+
} else node.content = " ";
|
|
14509
|
+
} else if (shouldCondense) node.content = condense(node.content);
|
|
14510
|
+
} else node.content = node.content.replace(windowsNewlineRE, "\n");
|
|
14511
|
+
}
|
|
14329
14512
|
}
|
|
14330
14513
|
return removedWhitespace ? nodes.filter(Boolean) : nodes;
|
|
14331
14514
|
}
|
|
@@ -14603,7 +14786,7 @@ function getConstantType(node, context) {
|
|
|
14603
14786
|
default: return 0;
|
|
14604
14787
|
}
|
|
14605
14788
|
}
|
|
14606
|
-
const allowHoistedHelperSet = new Set([
|
|
14789
|
+
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
|
|
14607
14790
|
NORMALIZE_CLASS,
|
|
14608
14791
|
NORMALIZE_STYLE,
|
|
14609
14792
|
NORMALIZE_PROPS,
|
|
@@ -14780,7 +14963,7 @@ function transform(root, options) {
|
|
|
14780
14963
|
traverseNode(root, context);
|
|
14781
14964
|
if (options.hoistStatic) cacheStatic(root, context);
|
|
14782
14965
|
if (!options.ssr) createRootCodegen(root, context);
|
|
14783
|
-
root.helpers = new Set([...context.helpers.keys()]);
|
|
14966
|
+
root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
|
|
14784
14967
|
root.components = [...context.components];
|
|
14785
14968
|
root.directives = [...context.directives];
|
|
14786
14969
|
root.imports = context.imports;
|
|
@@ -14827,8 +15010,10 @@ function traverseNode(node, context) {
|
|
|
14827
15010
|
const exitFns = [];
|
|
14828
15011
|
for (let i = 0; i < nodeTransforms.length; i++) {
|
|
14829
15012
|
const onExit = nodeTransforms[i](node, context);
|
|
14830
|
-
if (onExit)
|
|
14831
|
-
|
|
15013
|
+
if (onExit) {
|
|
15014
|
+
if (isArray(onExit)) exitFns.push(...onExit);
|
|
15015
|
+
else exitFns.push(onExit);
|
|
15016
|
+
}
|
|
14832
15017
|
if (!context.currentNode) return;
|
|
14833
15018
|
else node = context.currentNode;
|
|
14834
15019
|
}
|
|
@@ -14845,9 +15030,7 @@ function traverseNode(node, context) {
|
|
|
14845
15030
|
case 10:
|
|
14846
15031
|
case 11:
|
|
14847
15032
|
case 1:
|
|
14848
|
-
case 0:
|
|
14849
|
-
traverseChildren(node, context);
|
|
14850
|
-
break;
|
|
15033
|
+
case 0: traverseChildren(node, context);
|
|
14851
15034
|
}
|
|
14852
15035
|
context.currentNode = node;
|
|
14853
15036
|
let i = exitFns.length;
|
|
@@ -15033,16 +15216,18 @@ function genFunctionPreamble(ast, context) {
|
|
|
15033
15216
|
const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
|
|
15034
15217
|
const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
|
|
15035
15218
|
const helpers = Array.from(ast.helpers);
|
|
15036
|
-
if (helpers.length > 0)
|
|
15037
|
-
|
|
15038
|
-
|
|
15039
|
-
|
|
15040
|
-
|
|
15041
|
-
|
|
15042
|
-
|
|
15043
|
-
|
|
15044
|
-
|
|
15045
|
-
|
|
15219
|
+
if (helpers.length > 0) {
|
|
15220
|
+
if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
|
|
15221
|
+
else {
|
|
15222
|
+
push(`const _Vue = ${VueBinding}\n`, -1);
|
|
15223
|
+
if (ast.hoists.length) push(`const { ${[
|
|
15224
|
+
CREATE_VNODE,
|
|
15225
|
+
CREATE_ELEMENT_VNODE,
|
|
15226
|
+
CREATE_COMMENT,
|
|
15227
|
+
CREATE_TEXT,
|
|
15228
|
+
CREATE_STATIC
|
|
15229
|
+
].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
|
|
15230
|
+
}
|
|
15046
15231
|
}
|
|
15047
15232
|
if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
|
|
15048
15233
|
genHoists(ast.hoists, context);
|
|
@@ -15119,10 +15304,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
|
|
|
15119
15304
|
if (isString(node)) push(node, -3);
|
|
15120
15305
|
else if (isArray(node)) genNodeListAsArray(node, context);
|
|
15121
15306
|
else genNode(node, context);
|
|
15122
|
-
if (i < nodes.length - 1)
|
|
15123
|
-
|
|
15124
|
-
|
|
15125
|
-
|
|
15307
|
+
if (i < nodes.length - 1) {
|
|
15308
|
+
if (multilines) {
|
|
15309
|
+
comma && push(",");
|
|
15310
|
+
newline();
|
|
15311
|
+
} else comma && push(", ");
|
|
15312
|
+
}
|
|
15126
15313
|
}
|
|
15127
15314
|
}
|
|
15128
15315
|
function genNode(node, context) {
|
|
@@ -15244,8 +15431,10 @@ function genVNodeCall(node, context) {
|
|
|
15244
15431
|
const { push, helper, pure } = context;
|
|
15245
15432
|
const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
|
|
15246
15433
|
let patchFlagString;
|
|
15247
|
-
if (patchFlag)
|
|
15248
|
-
|
|
15434
|
+
if (patchFlag) {
|
|
15435
|
+
if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
|
|
15436
|
+
else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
|
|
15437
|
+
}
|
|
15249
15438
|
if (directives) push(helper(WITH_DIRECTIVES) + `(`);
|
|
15250
15439
|
if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
|
|
15251
15440
|
if (pure) push(PURE_ANNOTATION);
|
|
@@ -15441,7 +15630,7 @@ function genReturnStatement({ returns }, context) {
|
|
|
15441
15630
|
}
|
|
15442
15631
|
//#endregion
|
|
15443
15632
|
//#region packages/compiler-core/src/transforms/transformExpression.ts
|
|
15444
|
-
const isLiteralWhitelisted =
|
|
15633
|
+
const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
|
|
15445
15634
|
const transformExpression = (node, context) => {
|
|
15446
15635
|
if (node.type === 5) node.content = processExpression(node.content, context);
|
|
15447
15636
|
else if (node.type === 1) {
|
|
@@ -15474,20 +15663,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15474
15663
|
if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
|
|
15475
15664
|
else if (type === "setup-ref") return `${raw}.value`;
|
|
15476
15665
|
else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
|
|
15477
|
-
else if (type === "setup-let")
|
|
15478
|
-
|
|
15479
|
-
|
|
15480
|
-
|
|
15481
|
-
|
|
15482
|
-
|
|
15483
|
-
|
|
15484
|
-
|
|
15485
|
-
|
|
15486
|
-
|
|
15487
|
-
|
|
15488
|
-
|
|
15489
|
-
|
|
15490
|
-
|
|
15666
|
+
else if (type === "setup-let") {
|
|
15667
|
+
if (isAssignmentLVal) {
|
|
15668
|
+
const { right: rVal, operator } = parent;
|
|
15669
|
+
const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
|
|
15670
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
|
|
15671
|
+
} else if (isUpdateArg) {
|
|
15672
|
+
id.start = parent.start;
|
|
15673
|
+
id.end = parent.end;
|
|
15674
|
+
const { prefix: isPrefix, operator } = parent;
|
|
15675
|
+
const prefix = isPrefix ? operator : ``;
|
|
15676
|
+
const postfix = isPrefix ? `` : operator;
|
|
15677
|
+
return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
|
|
15678
|
+
} else if (isDestructureAssignment) return raw;
|
|
15679
|
+
else return wrapWithUnref(raw);
|
|
15680
|
+
} else if (type === "props") return genPropsAccessExp(raw);
|
|
15491
15681
|
else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
|
|
15492
15682
|
} else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
|
|
15493
15683
|
else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
|
|
@@ -15504,8 +15694,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
|
|
|
15504
15694
|
if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
|
|
15505
15695
|
if (isConst(bindingMetadata[rawExp])) node.constType = 1;
|
|
15506
15696
|
node.content = rewriteIdentifier(rawExp);
|
|
15507
|
-
} else if (!isScopeVarReference)
|
|
15508
|
-
|
|
15697
|
+
} else if (!isScopeVarReference) {
|
|
15698
|
+
if (isLiteral) node.constType = 3;
|
|
15699
|
+
else node.constType = 2;
|
|
15700
|
+
}
|
|
15509
15701
|
return node;
|
|
15510
15702
|
}
|
|
15511
15703
|
if (!ast) {
|
|
@@ -15664,16 +15856,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
|
|
|
15664
15856
|
const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
|
|
15665
15857
|
const { children } = branch;
|
|
15666
15858
|
const firstChild = children[0];
|
|
15667
|
-
if (children.length !== 1 || firstChild.type !== 1)
|
|
15668
|
-
|
|
15669
|
-
|
|
15670
|
-
|
|
15859
|
+
if (children.length !== 1 || firstChild.type !== 1) {
|
|
15860
|
+
if (children.length === 1 && firstChild.type === 11) {
|
|
15861
|
+
const vnodeCall = firstChild.codegenNode;
|
|
15862
|
+
injectProp(vnodeCall, keyProperty, context);
|
|
15863
|
+
return vnodeCall;
|
|
15864
|
+
} else {
|
|
15865
|
+
let patchFlag = 64;
|
|
15866
|
+
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15867
|
+
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15868
|
+
}
|
|
15671
15869
|
} else {
|
|
15672
|
-
let patchFlag = 64;
|
|
15673
|
-
if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
|
|
15674
|
-
return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
|
|
15675
|
-
}
|
|
15676
|
-
else {
|
|
15677
15870
|
const ret = firstChild.codegenNode;
|
|
15678
15871
|
const vnodeCall = getMemoedVNodeCall(ret);
|
|
15679
15872
|
if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
|
|
@@ -15694,9 +15887,10 @@ function isSameKey(a, b) {
|
|
|
15694
15887
|
return true;
|
|
15695
15888
|
}
|
|
15696
15889
|
function getParentCondition(node) {
|
|
15697
|
-
while (true) if (node.type === 19)
|
|
15698
|
-
|
|
15699
|
-
|
|
15890
|
+
while (true) if (node.type === 19) {
|
|
15891
|
+
if (node.alternate.type === 19) node = node.alternate;
|
|
15892
|
+
else return node;
|
|
15893
|
+
} else if (node.type === 20) node = node.value;
|
|
15700
15894
|
}
|
|
15701
15895
|
//#endregion
|
|
15702
15896
|
//#region packages/compiler-core/src/transforms/vFor.ts
|
|
@@ -15740,10 +15934,12 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
|
|
|
15740
15934
|
childBlock = children[0].codegenNode;
|
|
15741
15935
|
if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
|
|
15742
15936
|
const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
|
|
15743
|
-
if (childBlock.isBlock !== shouldUseBlock)
|
|
15744
|
-
|
|
15745
|
-
|
|
15746
|
-
|
|
15937
|
+
if (childBlock.isBlock !== shouldUseBlock) {
|
|
15938
|
+
if (childBlock.isBlock) {
|
|
15939
|
+
removeHelper(OPEN_BLOCK);
|
|
15940
|
+
removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
|
|
15941
|
+
} else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
|
|
15942
|
+
}
|
|
15747
15943
|
childBlock.isBlock = shouldUseBlock;
|
|
15748
15944
|
if (childBlock.isBlock) {
|
|
15749
15945
|
helper(OPEN_BLOCK);
|
|
@@ -15960,8 +16156,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
|
|
|
15960
16156
|
return createObjectProperty(`default`, fn);
|
|
15961
16157
|
};
|
|
15962
16158
|
if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
|
|
15963
|
-
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText))
|
|
15964
|
-
|
|
16159
|
+
else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
|
|
16160
|
+
if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
|
|
16161
|
+
else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
|
|
16162
|
+
}
|
|
15965
16163
|
}
|
|
15966
16164
|
const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
|
|
15967
16165
|
let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ` /* ${slotFlagsText[slotFlag]} */`, false))), loc);
|
|
@@ -15987,10 +16185,7 @@ function hasForwardedSlots(children) {
|
|
|
15987
16185
|
if (hasForwardedSlots(child.branches)) return true;
|
|
15988
16186
|
break;
|
|
15989
16187
|
case 10:
|
|
15990
|
-
case 11:
|
|
15991
|
-
if (hasForwardedSlots(child.children)) return true;
|
|
15992
|
-
break;
|
|
15993
|
-
default: break;
|
|
16188
|
+
case 11: if (hasForwardedSlots(child.children)) return true;
|
|
15994
16189
|
}
|
|
15995
16190
|
}
|
|
15996
16191
|
return false;
|
|
@@ -16209,29 +16404,30 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16209
16404
|
if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
|
|
16210
16405
|
if (!arg && (isVBind || isVOn)) {
|
|
16211
16406
|
hasDynamicKeys = true;
|
|
16212
|
-
if (exp)
|
|
16213
|
-
|
|
16214
|
-
|
|
16215
|
-
if (
|
|
16216
|
-
if (
|
|
16217
|
-
|
|
16218
|
-
|
|
16219
|
-
|
|
16220
|
-
|
|
16221
|
-
|
|
16222
|
-
|
|
16223
|
-
|
|
16224
|
-
|
|
16225
|
-
|
|
16226
|
-
|
|
16227
|
-
|
|
16228
|
-
|
|
16229
|
-
|
|
16230
|
-
|
|
16231
|
-
|
|
16232
|
-
|
|
16233
|
-
|
|
16234
|
-
|
|
16407
|
+
if (exp) {
|
|
16408
|
+
if (isVBind) {
|
|
16409
|
+
pushMergeArg();
|
|
16410
|
+
if (mergeArgs.some((arg) => {
|
|
16411
|
+
if (arg.type === 15) return arg.properties.some(({ key }) => {
|
|
16412
|
+
if (key.type !== 4 || !key.isStatic) return true;
|
|
16413
|
+
return key.content !== "class" && key.content !== "style" && !isOn(key.content);
|
|
16414
|
+
});
|
|
16415
|
+
else return true;
|
|
16416
|
+
})) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
|
|
16417
|
+
if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
|
|
16418
|
+
mergeArgs.unshift(exp);
|
|
16419
|
+
continue;
|
|
16420
|
+
}
|
|
16421
|
+
pushRefVForMarker();
|
|
16422
|
+
pushMergeArg();
|
|
16423
|
+
mergeArgs.push(exp);
|
|
16424
|
+
} else pushMergeArg({
|
|
16425
|
+
type: 14,
|
|
16426
|
+
loc,
|
|
16427
|
+
callee: context.helper(TO_HANDLERS),
|
|
16428
|
+
arguments: isComponent ? [exp] : [exp, `true`]
|
|
16429
|
+
});
|
|
16430
|
+
} else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
|
|
16235
16431
|
continue;
|
|
16236
16432
|
}
|
|
16237
16433
|
if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
|
|
@@ -16289,9 +16485,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
|
|
|
16289
16485
|
} else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
|
|
16290
16486
|
break;
|
|
16291
16487
|
case 14: break;
|
|
16292
|
-
default:
|
|
16293
|
-
propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16294
|
-
break;
|
|
16488
|
+
default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
|
|
16295
16489
|
}
|
|
16296
16490
|
return {
|
|
16297
16491
|
props: propsExpression,
|
|
@@ -16401,10 +16595,12 @@ function processSlotOutlet(node, context) {
|
|
|
16401
16595
|
for (let i = 0; i < node.props.length; i++) {
|
|
16402
16596
|
const p = node.props[i];
|
|
16403
16597
|
if (p.type === 6) {
|
|
16404
|
-
if (p.value)
|
|
16405
|
-
|
|
16406
|
-
|
|
16407
|
-
|
|
16598
|
+
if (p.value) {
|
|
16599
|
+
if (p.name === "name") slotName = JSON.stringify(p.value.content);
|
|
16600
|
+
else {
|
|
16601
|
+
p.name = camelize(p.name);
|
|
16602
|
+
nonNameProps.push(p);
|
|
16603
|
+
}
|
|
16408
16604
|
}
|
|
16409
16605
|
} else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
|
|
16410
16606
|
if (p.exp) slotName = p.exp;
|
|
@@ -16433,17 +16629,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16433
16629
|
const { loc, modifiers, arg } = dir;
|
|
16434
16630
|
if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
|
|
16435
16631
|
let eventName;
|
|
16436
|
-
if (arg.type === 4)
|
|
16437
|
-
|
|
16438
|
-
|
|
16439
|
-
|
|
16440
|
-
|
|
16441
|
-
|
|
16442
|
-
|
|
16443
|
-
|
|
16444
|
-
|
|
16445
|
-
|
|
16446
|
-
|
|
16632
|
+
if (arg.type === 4) {
|
|
16633
|
+
if (arg.isStatic) {
|
|
16634
|
+
let rawName = arg.content;
|
|
16635
|
+
if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
|
|
16636
|
+
if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
|
|
16637
|
+
eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
|
|
16638
|
+
} else eventName = createCompoundExpression([
|
|
16639
|
+
`${context.helperString(TO_HANDLER_KEY)}(`,
|
|
16640
|
+
arg,
|
|
16641
|
+
`)`
|
|
16642
|
+
]);
|
|
16643
|
+
} else {
|
|
16447
16644
|
eventName = arg;
|
|
16448
16645
|
eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
|
|
16449
16646
|
eventName.children.push(`)`);
|
|
@@ -16460,13 +16657,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
|
|
|
16460
16657
|
exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
|
|
16461
16658
|
isInlineStatement && context.removeIdentifiers(`$event`);
|
|
16462
16659
|
shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
|
|
16463
|
-
if (shouldCache && isMemberExp)
|
|
16464
|
-
|
|
16465
|
-
|
|
16466
|
-
|
|
16467
|
-
|
|
16468
|
-
|
|
16469
|
-
|
|
16660
|
+
if (shouldCache && isMemberExp) {
|
|
16661
|
+
if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
|
|
16662
|
+
else exp.children = [
|
|
16663
|
+
...exp.children,
|
|
16664
|
+
` && `,
|
|
16665
|
+
...exp.children,
|
|
16666
|
+
`(...args)`
|
|
16667
|
+
];
|
|
16668
|
+
}
|
|
16470
16669
|
}
|
|
16471
16670
|
if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
|
|
16472
16671
|
`${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
|
|
@@ -16494,11 +16693,14 @@ const transformBind = (dir, _node, context) => {
|
|
|
16494
16693
|
arg.children.unshift(`(`);
|
|
16495
16694
|
arg.children.push(`) || ""`);
|
|
16496
16695
|
} else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
|
|
16497
|
-
if (modifiers.some((mod) => mod.content === "camel"))
|
|
16498
|
-
|
|
16499
|
-
|
|
16500
|
-
|
|
16501
|
-
|
|
16696
|
+
if (modifiers.some((mod) => mod.content === "camel")) {
|
|
16697
|
+
if (arg.type === 4) {
|
|
16698
|
+
if (arg.isStatic) arg.content = camelize(arg.content);
|
|
16699
|
+
else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
|
|
16700
|
+
} else {
|
|
16701
|
+
arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
|
|
16702
|
+
arg.children.push(`)`);
|
|
16703
|
+
}
|
|
16502
16704
|
}
|
|
16503
16705
|
if (!context.inSSR) {
|
|
16504
16706
|
if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
|
|
@@ -16507,9 +16709,10 @@ const transformBind = (dir, _node, context) => {
|
|
|
16507
16709
|
return { props: [createObjectProperty(arg, exp)] };
|
|
16508
16710
|
};
|
|
16509
16711
|
const injectPrefix = (arg, prefix) => {
|
|
16510
|
-
if (arg.type === 4)
|
|
16511
|
-
|
|
16512
|
-
|
|
16712
|
+
if (arg.type === 4) {
|
|
16713
|
+
if (arg.isStatic) arg.content = prefix + arg.content;
|
|
16714
|
+
else arg.content = `\`${prefix}\${${arg.content}}\``;
|
|
16715
|
+
} else {
|
|
16513
16716
|
arg.children.unshift(`'${prefix}' + (`);
|
|
16514
16717
|
arg.children.push(`)`);
|
|
16515
16718
|
}
|
|
@@ -16604,20 +16807,21 @@ const transformModel$1 = (dir, node, context) => {
|
|
|
16604
16807
|
const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
|
|
16605
16808
|
let assignmentExp;
|
|
16606
16809
|
const eventArg = context.isTS ? `($event: any)` : `$event`;
|
|
16607
|
-
if (maybeRef)
|
|
16608
|
-
|
|
16609
|
-
|
|
16610
|
-
`).value = $event)`
|
|
16611
|
-
]);
|
|
16612
|
-
else {
|
|
16613
|
-
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16614
|
-
assignmentExp = createCompoundExpression([
|
|
16615
|
-
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16810
|
+
if (maybeRef) {
|
|
16811
|
+
if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
|
|
16812
|
+
`${eventArg} => ((`,
|
|
16616
16813
|
createSimpleExpression(rawExp, false, exp.loc),
|
|
16617
|
-
`).value = $event
|
|
16814
|
+
`).value = $event)`
|
|
16618
16815
|
]);
|
|
16619
|
-
|
|
16620
|
-
|
|
16816
|
+
else {
|
|
16817
|
+
const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
|
|
16818
|
+
assignmentExp = createCompoundExpression([
|
|
16819
|
+
`${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
|
|
16820
|
+
createSimpleExpression(rawExp, false, exp.loc),
|
|
16821
|
+
`).value = $event : ${altAssignment})`
|
|
16822
|
+
]);
|
|
16823
|
+
}
|
|
16824
|
+
} else assignmentExp = createCompoundExpression([
|
|
16621
16825
|
`${eventArg} => ((`,
|
|
16622
16826
|
exp,
|
|
16623
16827
|
`) = $event)`
|
|
@@ -16676,11 +16880,12 @@ function parseFilter(node, context) {
|
|
|
16676
16880
|
if (c === 96 && prev !== 92) inTemplateString = false;
|
|
16677
16881
|
} else if (inRegex) {
|
|
16678
16882
|
if (c === 47 && prev !== 92) inRegex = false;
|
|
16679
|
-
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren)
|
|
16680
|
-
|
|
16681
|
-
|
|
16682
|
-
|
|
16683
|
-
|
|
16883
|
+
} else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
|
|
16884
|
+
if (expression === void 0) {
|
|
16885
|
+
lastFilterIndex = i + 1;
|
|
16886
|
+
expression = exp.slice(0, i).trim();
|
|
16887
|
+
} else pushFilter();
|
|
16888
|
+
} else {
|
|
16684
16889
|
switch (c) {
|
|
16685
16890
|
case 34:
|
|
16686
16891
|
inDouble = true;
|
|
@@ -16706,9 +16911,7 @@ function parseFilter(node, context) {
|
|
|
16706
16911
|
case 123:
|
|
16707
16912
|
curly++;
|
|
16708
16913
|
break;
|
|
16709
|
-
case 125:
|
|
16710
|
-
curly--;
|
|
16711
|
-
break;
|
|
16914
|
+
case 125: curly--;
|
|
16712
16915
|
}
|
|
16713
16916
|
if (c === 47) {
|
|
16714
16917
|
let j = i - 1;
|
|
@@ -16973,9 +17176,7 @@ const transformModel = (dir, node, context) => {
|
|
|
16973
17176
|
isInvalidType = true;
|
|
16974
17177
|
context.onError(createDOMCompilerError(60, dir.loc));
|
|
16975
17178
|
break;
|
|
16976
|
-
default:
|
|
16977
|
-
checkDuplicatedValue();
|
|
16978
|
-
break;
|
|
17179
|
+
default: checkDuplicatedValue();
|
|
16979
17180
|
}
|
|
16980
17181
|
} else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
|
|
16981
17182
|
else checkDuplicatedValue();
|
|
@@ -16988,10 +17189,10 @@ const transformModel = (dir, node, context) => {
|
|
|
16988
17189
|
};
|
|
16989
17190
|
//#endregion
|
|
16990
17191
|
//#region packages/compiler-dom/src/transforms/vOn.ts
|
|
16991
|
-
const isEventOptionModifier =
|
|
16992
|
-
const isNonKeyModifier =
|
|
16993
|
-
const maybeKeyModifier =
|
|
16994
|
-
const isKeyboardEvent =
|
|
17192
|
+
const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
|
|
17193
|
+
const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
|
|
17194
|
+
const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
|
|
17195
|
+
const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
|
|
16995
17196
|
const resolveModifiers = (key, modifiers, context, loc) => {
|
|
16996
17197
|
const keyModifiers = [];
|
|
16997
17198
|
const nonKeyModifiers = [];
|
|
@@ -17010,13 +17211,15 @@ const resolveModifiers = (key, modifiers, context, loc) => {
|
|
|
17010
17211
|
else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
|
|
17011
17212
|
else {
|
|
17012
17213
|
const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
|
|
17013
|
-
if (maybeKeyModifier(modifier))
|
|
17014
|
-
|
|
17015
|
-
|
|
17016
|
-
|
|
17017
|
-
|
|
17018
|
-
|
|
17019
|
-
|
|
17214
|
+
if (maybeKeyModifier(modifier)) {
|
|
17215
|
+
if (keyString) {
|
|
17216
|
+
if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
|
|
17217
|
+
else nonKeyModifiers.push(modifier);
|
|
17218
|
+
} else {
|
|
17219
|
+
keyModifiers.push(modifier);
|
|
17220
|
+
nonKeyModifiers.push(modifier);
|
|
17221
|
+
}
|
|
17222
|
+
} else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
|
|
17020
17223
|
else keyModifiers.push(modifier);
|
|
17021
17224
|
}
|
|
17022
17225
|
}
|
|
@@ -17186,7 +17389,7 @@ const dataAriaRE = /^(?:data|aria)-/;
|
|
|
17186
17389
|
const isStringifiableAttr = (name, ns) => {
|
|
17187
17390
|
return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
|
|
17188
17391
|
};
|
|
17189
|
-
const isNonStringifiable =
|
|
17392
|
+
const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
|
|
17190
17393
|
/**
|
|
17191
17394
|
* for a cached node, analyze it and return:
|
|
17192
17395
|
* - false: bailed (contains non-stringifiable props or runtime constant)
|
|
@@ -17323,7 +17526,7 @@ function isValidHTMLNesting(parent, child) {
|
|
|
17323
17526
|
}
|
|
17324
17527
|
return true;
|
|
17325
17528
|
}
|
|
17326
|
-
const headings = new Set([
|
|
17529
|
+
const headings = /* @__PURE__ */ new Set([
|
|
17327
17530
|
"h1",
|
|
17328
17531
|
"h2",
|
|
17329
17532
|
"h3",
|
|
@@ -17335,7 +17538,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
|
|
|
17335
17538
|
/**
|
|
17336
17539
|
* maps element to set of elements that can be it's children, no other */
|
|
17337
17540
|
const onlyValidChildren = {
|
|
17338
|
-
head: new Set([
|
|
17541
|
+
head: /* @__PURE__ */ new Set([
|
|
17339
17542
|
"base",
|
|
17340
17543
|
"basefront",
|
|
17341
17544
|
"bgsound",
|
|
@@ -17348,24 +17551,24 @@ const onlyValidChildren = {
|
|
|
17348
17551
|
"script",
|
|
17349
17552
|
"template"
|
|
17350
17553
|
]),
|
|
17351
|
-
optgroup: new Set(["option"]),
|
|
17352
|
-
select: new Set([
|
|
17554
|
+
optgroup: /* @__PURE__ */ new Set(["option"]),
|
|
17555
|
+
select: /* @__PURE__ */ new Set([
|
|
17353
17556
|
"optgroup",
|
|
17354
17557
|
"option",
|
|
17355
17558
|
"hr"
|
|
17356
17559
|
]),
|
|
17357
|
-
table: new Set([
|
|
17560
|
+
table: /* @__PURE__ */ new Set([
|
|
17358
17561
|
"caption",
|
|
17359
17562
|
"colgroup",
|
|
17360
17563
|
"tbody",
|
|
17361
17564
|
"tfoot",
|
|
17362
17565
|
"thead"
|
|
17363
17566
|
]),
|
|
17364
|
-
tr: new Set(["td", "th"]),
|
|
17365
|
-
colgroup: new Set(["col"]),
|
|
17366
|
-
tbody: new Set(["tr"]),
|
|
17367
|
-
thead: new Set(["tr"]),
|
|
17368
|
-
tfoot: new Set(["tr"]),
|
|
17567
|
+
tr: /* @__PURE__ */ new Set(["td", "th"]),
|
|
17568
|
+
colgroup: /* @__PURE__ */ new Set(["col"]),
|
|
17569
|
+
tbody: /* @__PURE__ */ new Set(["tr"]),
|
|
17570
|
+
thead: /* @__PURE__ */ new Set(["tr"]),
|
|
17571
|
+
tfoot: /* @__PURE__ */ new Set(["tr"]),
|
|
17369
17572
|
script: emptySet,
|
|
17370
17573
|
iframe: emptySet,
|
|
17371
17574
|
option: emptySet,
|
|
@@ -17376,30 +17579,30 @@ const onlyValidChildren = {
|
|
|
17376
17579
|
/** maps elements to set of elements which can be it's parent, no other */
|
|
17377
17580
|
const onlyValidParents = {
|
|
17378
17581
|
html: emptySet,
|
|
17379
|
-
body: new Set(["html"]),
|
|
17380
|
-
head: new Set(["html"]),
|
|
17381
|
-
td: new Set(["tr"]),
|
|
17382
|
-
colgroup: new Set(["table"]),
|
|
17383
|
-
caption: new Set(["table"]),
|
|
17384
|
-
tbody: new Set(["table"]),
|
|
17385
|
-
tfoot: new Set(["table"]),
|
|
17386
|
-
col: new Set(["colgroup"]),
|
|
17387
|
-
th: new Set(["tr"]),
|
|
17388
|
-
thead: new Set(["table"]),
|
|
17389
|
-
tr: new Set([
|
|
17582
|
+
body: /* @__PURE__ */ new Set(["html"]),
|
|
17583
|
+
head: /* @__PURE__ */ new Set(["html"]),
|
|
17584
|
+
td: /* @__PURE__ */ new Set(["tr"]),
|
|
17585
|
+
colgroup: /* @__PURE__ */ new Set(["table"]),
|
|
17586
|
+
caption: /* @__PURE__ */ new Set(["table"]),
|
|
17587
|
+
tbody: /* @__PURE__ */ new Set(["table"]),
|
|
17588
|
+
tfoot: /* @__PURE__ */ new Set(["table"]),
|
|
17589
|
+
col: /* @__PURE__ */ new Set(["colgroup"]),
|
|
17590
|
+
th: /* @__PURE__ */ new Set(["tr"]),
|
|
17591
|
+
thead: /* @__PURE__ */ new Set(["table"]),
|
|
17592
|
+
tr: /* @__PURE__ */ new Set([
|
|
17390
17593
|
"tbody",
|
|
17391
17594
|
"thead",
|
|
17392
17595
|
"tfoot"
|
|
17393
17596
|
]),
|
|
17394
|
-
dd: new Set(["dl", "div"]),
|
|
17395
|
-
dt: new Set(["dl", "div"]),
|
|
17396
|
-
figcaption: new Set(["figure"]),
|
|
17397
|
-
summary: new Set(["details"]),
|
|
17398
|
-
area: new Set(["map"])
|
|
17597
|
+
dd: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17598
|
+
dt: /* @__PURE__ */ new Set(["dl", "div"]),
|
|
17599
|
+
figcaption: /* @__PURE__ */ new Set(["figure"]),
|
|
17600
|
+
summary: /* @__PURE__ */ new Set(["details"]),
|
|
17601
|
+
area: /* @__PURE__ */ new Set(["map"])
|
|
17399
17602
|
};
|
|
17400
17603
|
/** maps element to set of elements that can not be it's children, others can */
|
|
17401
17604
|
const knownInvalidChildren = {
|
|
17402
|
-
p: new Set([
|
|
17605
|
+
p: /* @__PURE__ */ new Set([
|
|
17403
17606
|
"address",
|
|
17404
17607
|
"article",
|
|
17405
17608
|
"aside",
|
|
@@ -17434,7 +17637,7 @@ const knownInvalidChildren = {
|
|
|
17434
17637
|
"table",
|
|
17435
17638
|
"ul"
|
|
17436
17639
|
]),
|
|
17437
|
-
svg: new Set([
|
|
17640
|
+
svg: /* @__PURE__ */ new Set([
|
|
17438
17641
|
"b",
|
|
17439
17642
|
"blockquote",
|
|
17440
17643
|
"br",
|
|
@@ -17475,12 +17678,12 @@ const knownInvalidChildren = {
|
|
|
17475
17678
|
};
|
|
17476
17679
|
/** maps element to set of elements that can not be it's parent, others can */
|
|
17477
17680
|
const knownInvalidParents = {
|
|
17478
|
-
a: new Set(["a"]),
|
|
17479
|
-
button: new Set(["button"]),
|
|
17480
|
-
dd: new Set(["dd", "dt"]),
|
|
17481
|
-
dt: new Set(["dd", "dt"]),
|
|
17482
|
-
form: new Set(["form"]),
|
|
17483
|
-
li: new Set(["li"]),
|
|
17681
|
+
a: /* @__PURE__ */ new Set(["a"]),
|
|
17682
|
+
button: /* @__PURE__ */ new Set(["button"]),
|
|
17683
|
+
dd: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17684
|
+
dt: /* @__PURE__ */ new Set(["dd", "dt"]),
|
|
17685
|
+
form: /* @__PURE__ */ new Set(["form"]),
|
|
17686
|
+
li: /* @__PURE__ */ new Set(["li"]),
|
|
17484
17687
|
h1: headings,
|
|
17485
17688
|
h2: headings,
|
|
17486
17689
|
h3: headings,
|
|
@@ -17523,10 +17726,12 @@ function compile(src, options = {}) {
|
|
|
17523
17726
|
//#region packages/vue-compat/src/index.ts
|
|
17524
17727
|
const compileCache = Object.create(null);
|
|
17525
17728
|
function compileToFunction(template, options) {
|
|
17526
|
-
if (!isString(template))
|
|
17527
|
-
|
|
17528
|
-
|
|
17529
|
-
|
|
17729
|
+
if (!isString(template)) {
|
|
17730
|
+
if (template.nodeType) template = template.innerHTML;
|
|
17731
|
+
else {
|
|
17732
|
+
warn(`invalid template option: `, template);
|
|
17733
|
+
return NOOP;
|
|
17734
|
+
}
|
|
17530
17735
|
}
|
|
17531
17736
|
const key = genCacheKey(template, options);
|
|
17532
17737
|
const cached = compileCache[key];
|