@vue/compat 3.6.0-rc.1 → 3.6.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-rc.1
2
+ * @vue/compat v3.6.0-rc.10
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -26,7 +26,7 @@ let source_map_js = require("source-map-js");
26
26
  * \/\*#\_\_PURE\_\_\*\/
27
27
  * So that they can be tree-shaken if necessary.
28
28
  */
29
- /* @__NO_SIDE_EFFECTS__ */
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 = /* @__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");
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 = /* @__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");
187
+ const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
188
188
  //#endregion
189
189
  //#region packages/shared/src/codeframe.ts
190
190
  const range = 2;
@@ -238,10 +238,10 @@ function normalizeStyle(value) {
238
238
  }
239
239
  const listDelimiterRE = /;(?![^(]*\))/g;
240
240
  const propertyDelimiterRE = /:([^]+)/;
241
- const styleCommentRE = /\/\*[^]*?\*\//g;
241
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
242
242
  function parseStringStyle(cssText) {
243
243
  const ret = {};
244
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
244
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
245
245
  if (item) {
246
246
  const tmp = item.split(propertyDelimiterRE);
247
247
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -291,22 +291,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
291
291
  * Compiler only.
292
292
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
293
293
  */
294
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
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 = /* @__PURE__ */ makeMap(SVG_TAGS);
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 = /* @__PURE__ */ makeMap(MATH_TAGS);
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 = /* @__PURE__ */ makeMap(VOID_TAGS);
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 = /* @__PURE__ */ makeMap(specialBooleanAttrs);
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 = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
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 = /* @__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");
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 = /* @__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");
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 = /* @__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");
350
+ const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
351
351
  /**
352
352
  * Shared between server-renderer and runtime-core hydration logic
353
353
  */
@@ -407,13 +407,54 @@ function getEscapedCssVarName(key, doubleEscape) {
407
407
  }
408
408
  //#endregion
409
409
  //#region packages/shared/src/looseEqual.ts
410
- function looseCompareArrays(a, b) {
410
+ function looseCompareArrays(a, b, seen) {
411
411
  if (a.length !== b.length) return false;
412
412
  let equal = true;
413
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
413
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
414
414
  return equal;
415
415
  }
416
- function looseEqual(a, b) {
416
+ function looseCompareCollections(a, b, seen) {
417
+ if (a.size !== b.size) return false;
418
+ const candidates = Array.from(b);
419
+ const matched = new Uint8Array(candidates.length);
420
+ for (const item of a) {
421
+ let index = -1;
422
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
423
+ index = i;
424
+ break;
425
+ }
426
+ if (index < 0) return false;
427
+ matched[index] = 1;
428
+ }
429
+ return true;
430
+ }
431
+ function looseCompareObjects(a, b, seen) {
432
+ let aValidType = isMap(a);
433
+ let bValidType = isMap(b);
434
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
435
+ aValidType = isSet(a);
436
+ bValidType = isSet(b);
437
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
438
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
439
+ for (const key in a) {
440
+ const aHasKey = a.hasOwnProperty(key);
441
+ const bHasKey = b.hasOwnProperty(key);
442
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
443
+ }
444
+ return String(a) === String(b);
445
+ }
446
+ function looseCompareNested(a, b, seen, compare) {
447
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
448
+ const [seenA, seenB] = seen;
449
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
450
+ seenA.set(a, b);
451
+ seenB.set(b, a);
452
+ const equal = compare(a, b, seen);
453
+ seenA.delete(a);
454
+ seenB.delete(b);
455
+ return equal;
456
+ }
457
+ function looseEqual(a, b, seen) {
417
458
  if (a === b) return true;
418
459
  let aValidType = isDate(a);
419
460
  let bValidType = isDate(b);
@@ -423,17 +464,12 @@ function looseEqual(a, b) {
423
464
  if (aValidType || bValidType) return a === b;
424
465
  aValidType = isArray(a);
425
466
  bValidType = isArray(b);
426
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
467
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
427
468
  aValidType = isObject(a);
428
469
  bValidType = isObject(b);
429
470
  if (aValidType || bValidType) {
430
471
  if (!aValidType || !bValidType) return false;
431
- if (Object.keys(a).length !== Object.keys(b).length) return false;
432
- for (const key in a) {
433
- const aHasKey = a.hasOwnProperty(key);
434
- const bHasKey = b.hasOwnProperty(key);
435
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
436
- }
472
+ return looseCompareNested(a, b, seen, looseCompareObjects);
437
473
  }
438
474
  return String(a) === String(b);
439
475
  }
@@ -563,6 +599,8 @@ function setupFlagsHandler(target) {
563
599
  function warn$2(msg, ...args) {
564
600
  console.warn(`[Vue warn] ${msg}`, ...args);
565
601
  }
602
+ //#endregion
603
+ //#region packages/reactivity/src/system.ts
566
604
  const notifyBuffer = [];
567
605
  let batchDepth = 0;
568
606
  let activeSub = void 0;
@@ -701,13 +739,23 @@ function endTracking(sub, prevSub) {
701
739
  sub.flags &= -5;
702
740
  }
703
741
  function flush() {
742
+ let hasError = false;
743
+ let error;
704
744
  while (notifyIndex < notifyBufferLength) {
705
745
  const effect = notifyBuffer[notifyIndex];
706
746
  notifyBuffer[notifyIndex++] = void 0;
707
- effect.notify();
747
+ try {
748
+ effect.notify();
749
+ } catch (err) {
750
+ if (!hasError) {
751
+ hasError = true;
752
+ error = err;
753
+ }
754
+ }
708
755
  }
709
756
  notifyIndex = 0;
710
757
  notifyBufferLength = 0;
758
+ if (hasError) throw error;
711
759
  }
712
760
  function checkDirty(link, sub) {
713
761
  let stack;
@@ -791,7 +839,7 @@ var Dep = class {
791
839
  }
792
840
  set subs(value) {
793
841
  this._subs = value;
794
- if (value === void 0) this.map.delete(this.key);
842
+ if (value === void 0 && this.map) this.map.delete(this.key);
795
843
  }
796
844
  };
797
845
  const targetMap = /* @__PURE__ */ new WeakMap();
@@ -874,9 +922,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
874
922
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
875
923
  }
876
924
  break;
877
- case "set":
878
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
879
- break;
925
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
880
926
  }
881
927
  }
882
928
  }
@@ -891,13 +937,17 @@ function getDepFromReactive(object, key) {
891
937
  /**
892
938
  * Track array iteration and return:
893
939
  * - if input is reactive: a cloned raw array with reactive values
894
- * - if input is non-reactive or shallowReactive: the original raw array
940
+ * - if input is readonly: a cloned raw array with readonly values, preserving
941
+ * reactivity
942
+ * - if input is raw or shallow: the original raw array
895
943
  */
896
944
  function reactiveReadArray(array) {
897
945
  const raw = /* @__PURE__ */ toRaw(array);
898
946
  if (raw === array) return raw;
899
947
  track(raw, "iterate", ARRAY_ITERATE_KEY);
900
- return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
948
+ if (/* @__PURE__ */ isShallow(array)) return raw;
949
+ if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
950
+ return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
901
951
  }
902
952
  /**
903
953
  * Track array iteration and return raw array
@@ -1073,8 +1123,8 @@ function noTracking(self, method, args = []) {
1073
1123
  }
1074
1124
  //#endregion
1075
1125
  //#region packages/reactivity/src/baseHandlers.ts
1076
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
1077
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1126
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
1127
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
1078
1128
  function hasOwnProperty(key) {
1079
1129
  if (!isSymbol(key)) key = String(key);
1080
1130
  const obj = /* @__PURE__ */ toRaw(this);
@@ -1129,12 +1179,14 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
1129
1179
  oldValue = /* @__PURE__ */ toRaw(oldValue);
1130
1180
  value = /* @__PURE__ */ toRaw(value);
1131
1181
  }
1132
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) {
1133
- warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1134
- return true;
1135
- } else {
1136
- oldValue.value = value;
1137
- return true;
1182
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1183
+ if (isOldValueReadonly) {
1184
+ warn$2(`Set operation on key "${String(key)}" failed: target is readonly.`, target[key]);
1185
+ return true;
1186
+ } else {
1187
+ oldValue.value = value;
1188
+ return true;
1189
+ }
1138
1190
  }
1139
1191
  }
1140
1192
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1175,10 +1227,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1175
1227
  return true;
1176
1228
  }
1177
1229
  };
1178
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1179
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1180
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1181
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1230
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1231
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1232
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1233
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1182
1234
  //#endregion
1183
1235
  //#region packages/reactivity/src/collectionHandlers.ts
1184
1236
  const toShallow = (value) => value;
@@ -1329,10 +1381,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1329
1381
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1330
1382
  };
1331
1383
  }
1332
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1333
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1334
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1335
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1384
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1385
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1386
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1387
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1336
1388
  function checkIdentityKeys(target, has, key) {
1337
1389
  const rawKey = /* @__PURE__ */ toRaw(key);
1338
1390
  if (rawKey !== key && has.call(target, rawKey)) {
@@ -1357,7 +1409,7 @@ function targetTypeMap(rawType) {
1357
1409
  default: return 0;
1358
1410
  }
1359
1411
  }
1360
- /* @__NO_SIDE_EFFECTS__ */
1412
+ /*@__NO_SIDE_EFFECTS__*/
1361
1413
  function reactive(target) {
1362
1414
  if (/* @__PURE__ */ isReadonly(target)) return target;
1363
1415
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1392,7 +1444,7 @@ function reactive(target) {
1392
1444
  * @param target - The source object.
1393
1445
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1394
1446
  */
1395
- /* @__NO_SIDE_EFFECTS__ */
1447
+ /*@__NO_SIDE_EFFECTS__*/
1396
1448
  function shallowReactive(target) {
1397
1449
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1398
1450
  }
@@ -1425,7 +1477,7 @@ function shallowReactive(target) {
1425
1477
  * @param target - The source object.
1426
1478
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1427
1479
  */
1428
- /* @__NO_SIDE_EFFECTS__ */
1480
+ /*@__NO_SIDE_EFFECTS__*/
1429
1481
  function readonly(target) {
1430
1482
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1431
1483
  }
@@ -1459,7 +1511,7 @@ function readonly(target) {
1459
1511
  * @param target - The source object.
1460
1512
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1461
1513
  */
1462
- /* @__NO_SIDE_EFFECTS__ */
1514
+ /*@__NO_SIDE_EFFECTS__*/
1463
1515
  function shallowReadonly(target) {
1464
1516
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1465
1517
  }
@@ -1496,7 +1548,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1496
1548
  * @param value - The value to check.
1497
1549
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1498
1550
  */
1499
- /* @__NO_SIDE_EFFECTS__ */
1551
+ /*@__NO_SIDE_EFFECTS__*/
1500
1552
  function isReactive(value) {
1501
1553
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1502
1554
  return !!(value && value["__v_isReactive"]);
@@ -1512,11 +1564,11 @@ function isReactive(value) {
1512
1564
  * @param value - The value to check.
1513
1565
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1514
1566
  */
1515
- /* @__NO_SIDE_EFFECTS__ */
1567
+ /*@__NO_SIDE_EFFECTS__*/
1516
1568
  function isReadonly(value) {
1517
1569
  return !!(value && value["__v_isReadonly"]);
1518
1570
  }
1519
- /* @__NO_SIDE_EFFECTS__ */
1571
+ /*@__NO_SIDE_EFFECTS__*/
1520
1572
  function isShallow(value) {
1521
1573
  return !!(value && value["__v_isShallow"]);
1522
1574
  }
@@ -1527,7 +1579,7 @@ function isShallow(value) {
1527
1579
  * @param value - The value to check.
1528
1580
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1529
1581
  */
1530
- /* @__NO_SIDE_EFFECTS__ */
1582
+ /*@__NO_SIDE_EFFECTS__*/
1531
1583
  function isProxy(value) {
1532
1584
  return value ? !!value["__v_raw"] : false;
1533
1585
  }
@@ -1554,7 +1606,7 @@ function isProxy(value) {
1554
1606
  * @param observed - The object for which the "raw" value is requested.
1555
1607
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1556
1608
  */
1557
- /* @__NO_SIDE_EFFECTS__ */
1609
+ /*@__NO_SIDE_EFFECTS__*/
1558
1610
  function toRaw(observed) {
1559
1611
  const raw = observed && observed["__v_raw"];
1560
1612
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1603,15 +1655,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1603
1655
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1604
1656
  //#endregion
1605
1657
  //#region packages/reactivity/src/ref.ts
1606
- /* @__NO_SIDE_EFFECTS__ */
1658
+ /*@__NO_SIDE_EFFECTS__*/
1607
1659
  function isRef(r) {
1608
1660
  return r ? r["__v_isRef"] === true : false;
1609
1661
  }
1610
- /* @__NO_SIDE_EFFECTS__ */
1662
+ /*@__NO_SIDE_EFFECTS__*/
1611
1663
  function ref(value) {
1612
1664
  return createRef(value, toReactive);
1613
1665
  }
1614
- /* @__NO_SIDE_EFFECTS__ */
1666
+ /*@__NO_SIDE_EFFECTS__*/
1615
1667
  function shallowRef(value) {
1616
1668
  return createRef(value);
1617
1669
  }
@@ -1814,7 +1866,7 @@ function customRef(factory) {
1814
1866
  * @param object - Reactive object to be made into an object of linked refs.
1815
1867
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1816
1868
  */
1817
- /* @__NO_SIDE_EFFECTS__ */
1869
+ /*@__NO_SIDE_EFFECTS__*/
1818
1870
  function toRefs(object) {
1819
1871
  const ret = isArray(object) ? new Array(object.length) : {};
1820
1872
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1865,7 +1917,7 @@ var GetterRefImpl = class {
1865
1917
  return this._value = this._getter();
1866
1918
  }
1867
1919
  };
1868
- /* @__NO_SIDE_EFFECTS__ */
1920
+ /*@__NO_SIDE_EFFECTS__*/
1869
1921
  function toRef(source, key, defaultValue) {
1870
1922
  if (/* @__PURE__ */ isRef(source)) return source;
1871
1923
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1931,10 +1983,12 @@ var ReactiveEffect = class {
1931
1983
  get dirty() {
1932
1984
  const flags = this.flags;
1933
1985
  if (flags & 16) return true;
1934
- if (flags & 32) if (checkDirty(this.deps, this)) {
1935
- this.flags = flags | 16;
1936
- return true;
1937
- } else this.flags = flags & -33;
1986
+ if (flags & 32) {
1987
+ if (checkDirty(this.deps, this)) {
1988
+ this.flags = flags | 16;
1989
+ return true;
1990
+ } else this.flags = flags & -33;
1991
+ }
1938
1992
  return false;
1939
1993
  }
1940
1994
  };
@@ -2113,10 +2167,12 @@ var ComputedRefImpl = class {
2113
2167
  get _dirty() {
2114
2168
  const flags = this.flags;
2115
2169
  if (flags & 16) return true;
2116
- if (flags & 32) if (checkDirty(this.deps, this)) {
2117
- this.flags = flags | 16;
2118
- return true;
2119
- } else this.flags = flags & -33;
2170
+ if (flags & 32) {
2171
+ if (checkDirty(this.deps, this)) {
2172
+ this.flags = flags | 16;
2173
+ return true;
2174
+ } else this.flags = flags & -33;
2175
+ }
2120
2176
  return false;
2121
2177
  }
2122
2178
  /**
@@ -2177,7 +2233,7 @@ var ComputedRefImpl = class {
2177
2233
  }
2178
2234
  };
2179
2235
  setupOnTrigger(ComputedRefImpl);
2180
- /* @__NO_SIDE_EFFECTS__ */
2236
+ /*@__NO_SIDE_EFFECTS__*/
2181
2237
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
2182
2238
  let getter;
2183
2239
  let setter;
@@ -2255,25 +2311,26 @@ var WatcherEffect = class extends ReactiveEffect {
2255
2311
  else if (isFunction(s)) return call ? call(s, 2) : s();
2256
2312
  else warnInvalidSource(s, onWarn);
2257
2313
  });
2258
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2259
- else getter = () => {
2260
- if (this.cleanupsLength) {
2261
- const prevSub = setActiveSub();
2314
+ } else if (isFunction(source)) {
2315
+ if (cb) getter = call ? () => call(source, 2) : source;
2316
+ else getter = () => {
2317
+ if (this.cleanupsLength) {
2318
+ const prevSub = setActiveSub();
2319
+ try {
2320
+ cleanup(this);
2321
+ } finally {
2322
+ setActiveSub(prevSub);
2323
+ }
2324
+ }
2325
+ const currentEffect = activeWatcher;
2326
+ activeWatcher = this;
2262
2327
  try {
2263
- cleanup(this);
2328
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2264
2329
  } finally {
2265
- setActiveSub(prevSub);
2330
+ activeWatcher = currentEffect;
2266
2331
  }
2267
- }
2268
- const currentEffect = activeWatcher;
2269
- activeWatcher = this;
2270
- try {
2271
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2272
- } finally {
2273
- activeWatcher = currentEffect;
2274
- }
2275
- };
2276
- else {
2332
+ };
2333
+ } else {
2277
2334
  getter = NOOP;
2278
2335
  warnInvalidSource(source, onWarn);
2279
2336
  }
@@ -2597,7 +2654,7 @@ let currentFlushPromise = null;
2597
2654
  let jobsLength = 0;
2598
2655
  let flushIndex = 0;
2599
2656
  let postFlushIndex = 0;
2600
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2657
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2601
2658
  const RECURSION_LIMIT = 100;
2602
2659
  function nextTick(fn) {
2603
2660
  const p = currentFlushPromise || resolvedPromise;
@@ -2636,6 +2693,7 @@ const doFlushJobs = () => {
2636
2693
  flushJobs();
2637
2694
  } catch (e) {
2638
2695
  currentFlushPromise = null;
2696
+ if (jobsLength || postJobs.length) queueFlush();
2639
2697
  throw e;
2640
2698
  }
2641
2699
  };
@@ -2643,9 +2701,10 @@ function queueFlush() {
2643
2701
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2644
2702
  }
2645
2703
  function queuePostFlushCb(jobs, id = Infinity) {
2646
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2647
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2648
- else for (const job of jobs) queueJobWorker(job, id, postJobs, postJobs.length, 0);
2704
+ if (!isArray(jobs)) {
2705
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2706
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2707
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2649
2708
  queueFlush();
2650
2709
  }
2651
2710
  function flushPreFlushCbs(instance, seen) {
@@ -2659,32 +2718,39 @@ function flushPreFlushCbs(instance, seen) {
2659
2718
  i--;
2660
2719
  jobsLength--;
2661
2720
  if (cb.flags & 2) cb.flags &= -2;
2662
- cb();
2663
- if (!(cb.flags & 2)) cb.flags &= -2;
2721
+ try {
2722
+ cb();
2723
+ } finally {
2724
+ if (!(cb.flags & 2)) cb.flags &= -2;
2725
+ }
2664
2726
  }
2665
2727
  }
2666
2728
  function flushPostFlushCbs(seen) {
2667
2729
  if (postJobs.length) {
2668
2730
  if (activePostJobs) {
2669
- activePostJobs.push(...postJobs);
2731
+ for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2670
2732
  postJobs.length = 0;
2671
2733
  return;
2672
2734
  }
2673
2735
  activePostJobs = postJobs;
2674
2736
  postJobs = [];
2675
2737
  seen = seen || /* @__PURE__ */ new Map();
2676
- while (postFlushIndex < activePostJobs.length) {
2677
- const cb = activePostJobs[postFlushIndex++];
2678
- if (checkRecursiveUpdates(seen, cb)) continue;
2679
- if (cb.flags & 2) cb.flags &= -2;
2680
- if (!(cb.flags & 4)) try {
2681
- cb();
2682
- } finally {
2683
- cb.flags &= -2;
2738
+ try {
2739
+ while (postFlushIndex < activePostJobs.length) {
2740
+ const cb = activePostJobs[postFlushIndex++];
2741
+ if (checkRecursiveUpdates(seen, cb)) continue;
2742
+ if (cb.flags & 2) cb.flags &= -2;
2743
+ if (!(cb.flags & 4)) try {
2744
+ cb();
2745
+ } finally {
2746
+ if (!(cb.flags & 2)) cb.flags &= -2;
2747
+ }
2684
2748
  }
2749
+ } finally {
2750
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2751
+ activePostJobs = null;
2752
+ postFlushIndex = 0;
2685
2753
  }
2686
- activePostJobs = null;
2687
- postFlushIndex = 0;
2688
2754
  }
2689
2755
  }
2690
2756
  let isFlushing = false;
@@ -2694,9 +2760,12 @@ let isFlushing = false;
2694
2760
  function flushOnAppMount(instance) {
2695
2761
  if (!isFlushing) {
2696
2762
  isFlushing = true;
2697
- flushPreFlushCbs(instance);
2698
- flushPostFlushCbs();
2699
- isFlushing = false;
2763
+ try {
2764
+ flushPreFlushCbs(instance);
2765
+ flushPostFlushCbs();
2766
+ } finally {
2767
+ isFlushing = false;
2768
+ }
2700
2769
  }
2701
2770
  }
2702
2771
  function flushJobs(seen) {
@@ -2726,8 +2795,8 @@ function flushJobs(seen) {
2726
2795
  jobsLength = 0;
2727
2796
  jobs.length = 0;
2728
2797
  flushPostFlushCbs(seen);
2729
- currentFlushPromise = null;
2730
2798
  if (jobsLength || postJobs.length) flushJobs(seen);
2799
+ else currentFlushPromise = null;
2731
2800
  }
2732
2801
  }
2733
2802
  function checkRecursiveUpdates(seen, fn) {
@@ -2758,6 +2827,19 @@ getGlobalThis().__VUE_HMR_RUNTIME__ = {
2758
2827
  rerender: tryWrap(rerender),
2759
2828
  reload: tryWrap(reload)
2760
2829
  };
2830
+ function runWithHmrUpdating(fn) {
2831
+ isHmrUpdating = true;
2832
+ let done = false;
2833
+ try {
2834
+ fn();
2835
+ done = true;
2836
+ } finally {
2837
+ if (done) nextTick(() => {
2838
+ isHmrUpdating = false;
2839
+ });
2840
+ else isHmrUpdating = false;
2841
+ }
2842
+ }
2761
2843
  const map = /* @__PURE__ */ new Map();
2762
2844
  function registerHMR(instance) {
2763
2845
  const id = instance.type.__hmrId;
@@ -2799,18 +2881,16 @@ function rerender(id, newRender) {
2799
2881
  instance.render = newRender;
2800
2882
  normalizeClassComponent(instance.type).render = newRender;
2801
2883
  }
2802
- isHmrUpdating = true;
2803
- if (instance.vapor) {
2804
- if (!instance.isUnmounted) instance.hmrRerender();
2805
- } else {
2806
- const i = instance;
2807
- if (!(i.effect.flags & 1024)) {
2808
- i.renderCache = [];
2809
- i.effect.run();
2884
+ runWithHmrUpdating(() => {
2885
+ if (instance.vapor) {
2886
+ if (!instance.isUnmounted) instance.hmrRerender();
2887
+ } else {
2888
+ const i = instance;
2889
+ if (!(i.effect.flags & 1024)) {
2890
+ i.renderCache = [];
2891
+ i.effect.run();
2892
+ }
2810
2893
  }
2811
- }
2812
- nextTick(() => {
2813
- isHmrUpdating = false;
2814
2894
  });
2815
2895
  });
2816
2896
  }
@@ -2825,17 +2905,19 @@ function reload(id, newComp) {
2825
2905
  for (const instance of instances) if (instance.root && instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(instance.type);
2826
2906
  const dirtyInstances = new Set(instances);
2827
2907
  const rerenderedParents = /* @__PURE__ */ new Set();
2828
- for (const instance of instances) {
2829
- const parent = instance.parent;
2830
- if (parent) {
2831
- if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2832
- rerenderedParents.add(parent);
2833
- parent.hmrRerender();
2834
- }
2835
- } else instance.hmrReload(newComp);
2836
- }
2908
+ runWithHmrUpdating(() => {
2909
+ for (const instance of instances) {
2910
+ const parent = instance.parent;
2911
+ if (parent) {
2912
+ if (!hasDirtyAncestor(instance, dirtyInstances) && !rerenderedParents.has(parent)) {
2913
+ rerenderedParents.add(parent);
2914
+ parent.hmrRerender();
2915
+ }
2916
+ } else instance.hmrReload(newComp);
2917
+ }
2918
+ });
2837
2919
  } else {
2838
- const parentUpdates = /* @__PURE__ */ new Map();
2920
+ const parents = /* @__PURE__ */ new Set();
2839
2921
  const dirtyInstanceSet = new Set(instances);
2840
2922
  for (const instance of instances) {
2841
2923
  const oldComp = normalizeClassComponent(instance.type);
@@ -2854,33 +2936,23 @@ function reload(id, newComp) {
2854
2936
  instance.ceReload(newComp.styles);
2855
2937
  dirtyInstances.delete(instance);
2856
2938
  } else if (instance.parent) {
2857
- const parent = instance.parent;
2858
- if (!hasDirtyAncestor(instance, dirtyInstanceSet)) {
2859
- let updates = parentUpdates.get(parent);
2860
- if (!updates) parentUpdates.set(parent, updates = []);
2861
- updates.push([instance, dirtyInstances]);
2862
- }
2939
+ if (!hasDirtyAncestor(instance, dirtyInstanceSet)) parents.add(instance.parent);
2863
2940
  } else if (instance.appContext.reload) instance.appContext.reload();
2864
2941
  else if (typeof window !== "undefined") window.location.reload();
2865
2942
  else console.warn("[HMR] Root or manually mounted instance modified. Full reload required.");
2866
2943
  if (instance.root.ce && instance !== instance.root) instance.root.ce._removeChildStyle(oldComp);
2867
2944
  }
2868
- parentUpdates.forEach((updates, parent) => {
2945
+ parents.forEach((parent) => {
2869
2946
  queueJob(() => {
2870
- isHmrUpdating = true;
2871
- if (parent.vapor) parent.hmrRerender();
2872
- else {
2873
- const i = parent;
2874
- if (!(i.effect.flags & 1024)) {
2875
- i.renderCache = [];
2876
- i.effect.run();
2947
+ runWithHmrUpdating(() => {
2948
+ if (parent.vapor) parent.hmrRerender();
2949
+ else {
2950
+ const i = parent;
2951
+ if (!(i.effect.flags & 1024)) {
2952
+ i.renderCache = [];
2953
+ i.effect.run();
2954
+ }
2877
2955
  }
2878
- }
2879
- nextTick(() => {
2880
- isHmrUpdating = false;
2881
- });
2882
- updates.forEach(([instance, dirtyInstances]) => {
2883
- dirtyInstances.delete(instance);
2884
2956
  });
2885
2957
  });
2886
2958
  });
@@ -2950,20 +3022,20 @@ function devtoolsInitApp(app, version) {
2950
3022
  function devtoolsUnmountApp(app) {
2951
3023
  emit$2("app:unmount", app);
2952
3024
  }
2953
- const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added");
2954
- const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated");
2955
- const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook("component:removed");
3025
+ const devtoolsComponentAdded = /*@__PURE__*/ createDevtoolsComponentHook("component:added");
3026
+ const devtoolsComponentUpdated = /*@__PURE__*/ createDevtoolsComponentHook("component:updated");
3027
+ const _devtoolsComponentRemoved = /*@__PURE__*/ createDevtoolsComponentHook("component:removed");
2956
3028
  const devtoolsComponentRemoved = (component) => {
2957
3029
  if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && !devtools$1.cleanupBuffer(component)) _devtoolsComponentRemoved(component);
2958
3030
  };
2959
- /* @__NO_SIDE_EFFECTS__ */
3031
+ /*@__NO_SIDE_EFFECTS__*/
2960
3032
  function createDevtoolsComponentHook(hook) {
2961
3033
  return (component) => {
2962
3034
  emit$2(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : void 0, component);
2963
3035
  };
2964
3036
  }
2965
- const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start");
2966
- const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end");
3037
+ const devtoolsPerfStart = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:start");
3038
+ const devtoolsPerfEnd = /*@__PURE__*/ createDevtoolsPerformanceHook("perf:end");
2967
3039
  function createDevtoolsPerformanceHook(hook) {
2968
3040
  return (component, type, time) => {
2969
3041
  emit$2(hook, component.appContext.app, component.uid, component, type, time);
@@ -3192,7 +3264,7 @@ function configureCompat(config) {
3192
3264
  validateCompatConfig(config);
3193
3265
  extend(globalCompatConfig, config);
3194
3266
  }
3195
- const seenConfigObjects = /* @__PURE__ */ new WeakSet();
3267
+ const seenConfigObjects = /*@__PURE__*/ new WeakSet();
3196
3268
  const warnedInvalidKeys = {};
3197
3269
  function validateCompatConfig(config, instance) {
3198
3270
  if (seenConfigObjects.has(config)) return;
@@ -3244,7 +3316,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
3244
3316
  }
3245
3317
  //#endregion
3246
3318
  //#region packages/runtime-core/src/compat/instanceEventEmitter.ts
3247
- const eventRegistryMap = /* @__PURE__ */ new WeakMap();
3319
+ const eventRegistryMap = /*@__PURE__*/ new WeakMap();
3248
3320
  function getRegistry(instance) {
3249
3321
  let events = eventRegistryMap.get(instance);
3250
3322
  if (!events) eventRegistryMap.set(instance, events = Object.create(null));
@@ -3378,19 +3450,21 @@ const legacyDirectiveHookMap = {
3378
3450
  };
3379
3451
  function mapCompatDirectiveHook(name, dir, instance) {
3380
3452
  const mappedName = legacyDirectiveHookMap[name];
3381
- if (mappedName) if (isArray(mappedName)) {
3382
- const hook = [];
3383
- mappedName.forEach((mapped) => {
3384
- const mappedHook = dir[mapped];
3385
- if (mappedHook) {
3386
- softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3387
- hook.push(mappedHook);
3388
- }
3389
- });
3390
- return hook.length ? hook : void 0;
3391
- } else {
3392
- if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3393
- return dir[mappedName];
3453
+ if (mappedName) {
3454
+ if (isArray(mappedName)) {
3455
+ const hook = [];
3456
+ mappedName.forEach((mapped) => {
3457
+ const mappedHook = dir[mapped];
3458
+ if (mappedHook) {
3459
+ softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
3460
+ hook.push(mappedHook);
3461
+ }
3462
+ });
3463
+ return hook.length ? hook : void 0;
3464
+ } else {
3465
+ if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
3466
+ return dir[mappedName];
3467
+ }
3394
3468
  }
3395
3469
  }
3396
3470
  //#endregion
@@ -3575,7 +3649,7 @@ function instanceWatch(source, value, options) {
3575
3649
  }
3576
3650
  const prev = setCurrentInstance(this);
3577
3651
  const res = doWatch(getter, cb.bind(publicThis), options);
3578
- setCurrentInstance(...prev);
3652
+ restoreCurrentInstance(prev);
3579
3653
  return res;
3580
3654
  }
3581
3655
  function createPathGetter(ctx, path) {
@@ -3597,15 +3671,16 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
3597
3671
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
3598
3672
  const resolveTarget = (props, select) => {
3599
3673
  const targetSelector = props && props.to;
3600
- if (isString(targetSelector)) if (!select) {
3601
- warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3602
- return null;
3674
+ if (isString(targetSelector)) {
3675
+ if (!select) {
3676
+ warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)");
3677
+ return null;
3678
+ } else {
3679
+ const target = select(targetSelector);
3680
+ if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3681
+ return target;
3682
+ }
3603
3683
  } else {
3604
- const target = select(targetSelector);
3605
- if (!target && !isTeleportDisabled(props)) warn$1(`Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`);
3606
- return target;
3607
- }
3608
- else {
3609
3684
  if (!targetSelector && !isTeleportDisabled(props)) warn$1(`Invalid Teleport target: ${targetSelector}`);
3610
3685
  return targetSelector;
3611
3686
  }
@@ -3643,7 +3718,8 @@ const TeleportImpl = {
3643
3718
  if (pendingMounts.get(vnode) !== mountJob) return;
3644
3719
  pendingMounts.delete(vnode);
3645
3720
  if (isTeleportDisabled(vnode.props)) {
3646
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
3721
+ const mountContainer = parentNode(vnode.el) || container;
3722
+ mount(vnode, mountContainer, vnode.anchor);
3647
3723
  updateCssVars(vnode, true);
3648
3724
  }
3649
3725
  mountToTarget(vnode);
@@ -3752,15 +3828,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
3752
3828
  const disabled = isTeleportDisabled(vnode.props);
3753
3829
  if (target) {
3754
3830
  const targetNode = target._lpa || target.firstChild;
3755
- if (vnode.shapeFlag & 16) if (disabled) {
3756
- hydrateDisabledTeleport(node, vnode);
3757
- hydrateAnchor(target, targetNode);
3758
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3759
- } else {
3760
- vnode.anchor = nextSibling(node);
3761
- hydrateAnchor(target, targetNode);
3762
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3763
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3831
+ if (vnode.shapeFlag & 16) {
3832
+ if (disabled) {
3833
+ hydrateDisabledTeleport(node, vnode);
3834
+ hydrateAnchor(target, targetNode);
3835
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3836
+ } else {
3837
+ vnode.anchor = nextSibling(node);
3838
+ hydrateAnchor(target, targetNode);
3839
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3840
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3841
+ }
3764
3842
  }
3765
3843
  updateCssVars(vnode, disabled);
3766
3844
  } else if (disabled) {
@@ -3848,49 +3926,16 @@ const BaseTransitionImpl = {
3848
3926
  setup(props, { slots }) {
3849
3927
  const instance = getCurrentInstance();
3850
3928
  const state = useTransitionState();
3929
+ let resumeAfterLeave;
3851
3930
  return () => {
3852
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
3853
- const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
3931
+ const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
3854
3932
  if (!child) return;
3855
3933
  const rawProps = /* @__PURE__ */ toRaw(props);
3856
3934
  const { mode } = rawProps;
3857
3935
  checkTransitionMode(mode);
3858
- if (state.isLeaving) return emptyPlaceholder(child);
3859
- const innerChild = getInnerChild$1(child);
3860
- if (!innerChild) return emptyPlaceholder(child);
3861
- let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
3862
- if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
3863
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3864
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3865
- let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
3866
- setTransitionHooks(oldInnerChild, leavingHooks);
3867
- if (mode === "out-in" && innerChild.type !== Comment) {
3868
- state.isLeaving = true;
3869
- leavingHooks.afterLeave = () => {
3870
- state.isLeaving = false;
3871
- if (!(instance.job.flags & 4)) instance.update();
3872
- delete leavingHooks.afterLeave;
3873
- oldInnerChild = void 0;
3874
- };
3875
- return emptyPlaceholder(child);
3876
- } else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3877
- const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
3878
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3879
- el[leaveCbKey] = () => {
3880
- earlyRemove();
3881
- el[leaveCbKey] = void 0;
3882
- delete enterHooks.delayedLeave;
3883
- oldInnerChild = void 0;
3884
- };
3885
- enterHooks.delayedLeave = () => {
3886
- delayedLeave();
3887
- delete enterHooks.delayedLeave;
3888
- oldInnerChild = void 0;
3889
- };
3890
- };
3891
- else oldInnerChild = void 0;
3892
- } else if (oldInnerChild) oldInnerChild = void 0;
3893
- return child;
3936
+ return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3937
+ if (!(instance.job.flags & 4)) instance.update();
3938
+ }) : NOOP);
3894
3939
  };
3895
3940
  }
3896
3941
  };
@@ -3960,8 +4005,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3960
4005
  persisted,
3961
4006
  beforeEnter(el) {
3962
4007
  let hook = onBeforeEnter;
3963
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3964
- else return;
4008
+ if (!state.isMounted) {
4009
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
4010
+ else return;
4011
+ }
3965
4012
  if (el[leaveCbKey]) el[leaveCbKey](true);
3966
4013
  earlyRemove();
3967
4014
  callHook(hook, [el]);
@@ -3971,11 +4018,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3971
4018
  let hook = onEnter;
3972
4019
  let afterHook = onAfterEnter;
3973
4020
  let cancelHook = onEnterCancelled;
3974
- if (!state.isMounted) if (appear) {
3975
- hook = onAppear || onEnter;
3976
- afterHook = onAfterAppear || onAfterEnter;
3977
- cancelHook = onAppearCancelled || onEnterCancelled;
3978
- } else return;
4021
+ if (!state.isMounted) {
4022
+ if (appear) {
4023
+ hook = onAppear || onEnter;
4024
+ afterHook = onAfterAppear || onAfterEnter;
4025
+ cancelHook = onAppearCancelled || onEnterCancelled;
4026
+ } else return;
4027
+ }
3979
4028
  let called = false;
3980
4029
  el[enterCbKey$1] = (cancelled) => {
3981
4030
  if (called) return;
@@ -4009,7 +4058,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
4009
4058
  else done();
4010
4059
  },
4011
4060
  clone(node) {
4012
- return cloneHooks(node);
4061
+ return cloneHooks ? cloneHooks(node) : hooks;
4013
4062
  }
4014
4063
  };
4015
4064
  return hooks;
@@ -4033,16 +4082,91 @@ function getInnerChild$1(vnode) {
4033
4082
  if (shapeFlag & 32 && isFunction(children.default)) return children.default();
4034
4083
  }
4035
4084
  }
4085
+ function resolveTransitionChild(children, renderEmpty = false) {
4086
+ const branches = children && getTransitionRawChildren(children, true);
4087
+ return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
4088
+ }
4089
+ /**
4090
+ * @internal
4091
+ */
4092
+ function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
4093
+ if (state.isLeaving) return emptyPlaceholder(next);
4094
+ const nextInner = getInnerChild$1(next);
4095
+ if (!nextInner) return emptyPlaceholder(next);
4096
+ let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
4097
+ if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
4098
+ enterHooks = hooks;
4099
+ });
4100
+ if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
4101
+ if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
4102
+ const mode = props.mode;
4103
+ const previousInner = previous && getInnerChild$1(previous);
4104
+ if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
4105
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
4106
+ if (nextInner.type !== Comment && (mode === "out-in" || mode === "in-out") && applyTransitionModeSwitch(previousInner, leavingHooks, mode === "in-out" ? () => enterHooks : void 0, props, state, resumeAfterLeave)) return emptyPlaceholder(next);
4107
+ }
4108
+ return next;
4109
+ }
4110
+ function forwardDelayedLeave(hooks, source) {
4111
+ const delayedLeave = source && source.delayedLeave;
4112
+ if (!delayedLeave) return;
4113
+ hooks.delayedLeave = () => {
4114
+ if (source.delayedLeave === delayedLeave) delayedLeave();
4115
+ delete hooks.delayedLeave;
4116
+ };
4117
+ }
4118
+ function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
4119
+ return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
4120
+ }
4121
+ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
4122
+ if (props.mode === "out-in") {
4123
+ state.isLeaving = true;
4124
+ leavingHooks.afterLeave = () => {
4125
+ state.isLeaving = false;
4126
+ resumeAfterLeave();
4127
+ delete leavingHooks.afterLeave;
4128
+ };
4129
+ return true;
4130
+ } else if (props.mode === "in-out" && getEnterHooks) {
4131
+ let delayedLeavingVNode = leavingVNode;
4132
+ leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
4133
+ const enterHooks = getEnterHooks();
4134
+ if (!enterHooks) {
4135
+ delayedLeave();
4136
+ return;
4137
+ }
4138
+ const vnode = delayedLeavingVNode;
4139
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
4140
+ leavingVNodesCache[String(vnode.key)] = vnode;
4141
+ el[leaveCbKey] = () => {
4142
+ earlyRemove();
4143
+ el[leaveCbKey] = void 0;
4144
+ delete enterHooks.delayedLeave;
4145
+ delayedLeavingVNode = void 0;
4146
+ };
4147
+ enterHooks.delayedLeave = () => {
4148
+ delayedLeave();
4149
+ delete enterHooks.delayedLeave;
4150
+ delayedLeavingVNode = void 0;
4151
+ };
4152
+ };
4153
+ }
4154
+ return false;
4155
+ }
4036
4156
  function setTransitionHooks(vnode, hooks) {
4037
- if (vnode.shapeFlag & 6 && vnode.component) if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4038
- else {
4157
+ if (vnode.shapeFlag & 6 && vnode.component) {
4039
4158
  vnode.transition = hooks;
4040
- setTransitionHooks(vnode.component.subTree, hooks);
4041
- }
4042
- else if (vnode.shapeFlag & 128) {
4043
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4044
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4159
+ if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
4160
+ else {
4161
+ const subTree = vnode.component.subTree;
4162
+ return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
4163
+ }
4164
+ } else if (vnode.shapeFlag & 128) {
4165
+ const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
4166
+ const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4167
+ return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
4045
4168
  } else vnode.transition = hooks;
4169
+ return hooks;
4046
4170
  }
4047
4171
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
4048
4172
  let ret = [];
@@ -4066,9 +4190,9 @@ function checkTransitionMode(mode) {
4066
4190
  }
4067
4191
  //#endregion
4068
4192
  //#region packages/runtime-core/src/apiDefineComponent.ts
4069
- /* @__NO_SIDE_EFFECTS__ */
4193
+ /*@__NO_SIDE_EFFECTS__*/
4070
4194
  function defineComponent(options, extraOptions) {
4071
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
4195
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
4072
4196
  }
4073
4197
  //#endregion
4074
4198
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -4165,15 +4289,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4165
4289
  if (rawRef.f) {
4166
4290
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
4167
4291
  if (isUnmount) isArray(existing) && remove(existing, refValue);
4168
- else if (!isArray(existing)) if (_isString) {
4169
- refs[ref] = [refValue];
4170
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4171
- } else {
4172
- const newVal = [refValue];
4173
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4174
- if (rawRef.k) refs[rawRef.k] = newVal;
4175
- }
4176
- else if (!existing.includes(refValue)) existing.push(refValue);
4292
+ else if (!isArray(existing)) {
4293
+ if (_isString) {
4294
+ refs[ref] = [refValue];
4295
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4296
+ } else {
4297
+ const newVal = [refValue];
4298
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4299
+ if (rawRef.k) refs[rawRef.k] = newVal;
4300
+ }
4301
+ } else if (!existing.includes(refValue)) existing.push(refValue);
4177
4302
  } else if (_isString) {
4178
4303
  refs[ref] = value;
4179
4304
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -4225,7 +4350,18 @@ const logMismatchError = () => {
4225
4350
  hasLoggedMismatchError = true;
4226
4351
  };
4227
4352
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
4228
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
4353
+ const isMathMLContainer = (container) => {
4354
+ if (!container.namespaceURI.includes("MathML")) return false;
4355
+ if (container.tagName !== "annotation-xml") return true;
4356
+ const encoding = container.getAttribute("encoding");
4357
+ return !encoding || !encoding.includes("html");
4358
+ };
4359
+ /**
4360
+ * Resolve the element namespace a container's children should be created in.
4361
+ * The live DOM is the source of truth, so this also covers containers that are
4362
+ * only known at runtime (interop boundaries, teleport targets).
4363
+ * @internal
4364
+ */
4229
4365
  const getContainerType = (container) => {
4230
4366
  if (container.nodeType !== 1) return void 0;
4231
4367
  if (isSVGContainer(container)) return "svg";
@@ -4249,7 +4385,7 @@ function createHydrationFunctions(rendererInternals) {
4249
4385
  };
4250
4386
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
4251
4387
  optimized = optimized || !!vnode.dynamicChildren;
4252
- const isFragmentStart = isComment(node) && node.data === "[";
4388
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
4253
4389
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
4254
4390
  const { type, ref, shapeFlag, patchFlag } = vnode;
4255
4391
  let domType = node.nodeType;
@@ -4263,11 +4399,12 @@ function createHydrationFunctions(rendererInternals) {
4263
4399
  let nextNode = null;
4264
4400
  switch (type) {
4265
4401
  case Text:
4266
- if (domType !== 3) if (vnode.children === "") {
4267
- insert(vnode.el = createText(""), parentNode(node), node);
4268
- nextNode = node;
4269
- } else nextNode = onMismatch();
4270
- else {
4402
+ if (domType !== 3) {
4403
+ if (vnode.children === "") {
4404
+ insert(vnode.el = createText(""), parentNode(node), node);
4405
+ nextNode = node;
4406
+ } else nextNode = onMismatch();
4407
+ } else {
4271
4408
  if (node.data !== vnode.children) {
4272
4409
  warn$1(`Hydration text mismatch in`, node.parentNode, `\n - rendered on server: ${JSON.stringify(node.data)}\n - expected on client: ${JSON.stringify(vnode.children)}`);
4273
4410
  logMismatchError();
@@ -4304,45 +4441,35 @@ function createHydrationFunctions(rendererInternals) {
4304
4441
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4305
4442
  break;
4306
4443
  case VaporSlot:
4307
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
4444
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
4308
4445
  break;
4309
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
4310
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4311
- else if (shapeFlag & 6) {
4446
+ default: if (shapeFlag & 1) {
4447
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
4448
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
4449
+ } else if (shapeFlag & 6) {
4312
4450
  vnode.slotScopeIds = slotScopeIds;
4313
4451
  const container = parentNode(node);
4314
4452
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
4315
4453
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
4316
4454
  else nextNode = nextSibling(node);
4317
- if (vnode.type.__vapor) {
4318
- const vnodeBeforeMountHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeBeforeMount;
4319
- getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
4320
- if (vnode.dirs) {
4321
- invokeDirectiveHook(vnode, null, parentComponent, "created");
4322
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
4323
- }
4324
- }, () => {
4325
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
4326
- });
4327
- if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
4328
- const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
4329
- if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
4330
- } else {
4455
+ if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
4456
+ else {
4331
4457
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
4332
4458
  const component = vnode.component;
4333
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
4459
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
4334
4460
  let subTree;
4335
4461
  if (isFragmentStart) {
4336
- subTree = createVNode(Fragment);
4462
+ subTree = createVNode(Static);
4337
4463
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4338
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
4464
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
4339
4465
  subTree.el = node;
4340
4466
  component.subTree = subTree;
4341
4467
  }
4342
4468
  }
4343
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
4344
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4345
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4469
+ } else if (shapeFlag & 64) {
4470
+ if (domType !== 8) nextNode = onMismatch();
4471
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
4472
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
4346
4473
  else warn$1("Invalid HostVNode type:", type, `(${typeof type})`);
4347
4474
  }
4348
4475
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
@@ -4394,7 +4521,10 @@ function createHydrationFunctions(rendererInternals) {
4394
4521
  const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
4395
4522
  for (const key in props) {
4396
4523
  if (!(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) logMismatchError();
4397
- if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) patchProp(el, key, null, props[key], namespace, parentComponent);
4524
+ if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
4525
+ if (isUnchangedResourceProp(el, key, props[key])) continue;
4526
+ patchProp(el, key, null, props[key], namespace, parentComponent);
4527
+ }
4398
4528
  }
4399
4529
  }
4400
4530
  let vnodeHooks;
@@ -4442,8 +4572,9 @@ function createHydrationFunctions(rendererInternals) {
4442
4572
  const { slotScopeIds: fragmentSlotScopeIds } = vnode;
4443
4573
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
4444
4574
  const container = parentNode(node);
4445
- const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4446
- if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
4575
+ const first = nextSibling(node);
4576
+ const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
4577
+ if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
4447
4578
  else {
4448
4579
  logMismatchError();
4449
4580
  insert(vnode.anchor = createComment(`]`), container, next);
@@ -4452,7 +4583,7 @@ function createHydrationFunctions(rendererInternals) {
4452
4583
  };
4453
4584
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
4454
4585
  if (!isNodeMismatchAllowed(node, vnode)) {
4455
- warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4586
+ warn$1(`Hydration node mismatch:\n- rendered on server:`, node, node.nodeType === 3 ? `(text)` : isComment(node) && (node.data === "[" || node.data === "(") ? `(start of fragment)` : ``, `\n- expected on client:`, vnode.type);
4456
4587
  logMismatchError();
4457
4588
  }
4458
4589
  vnode.el = null;
@@ -4468,20 +4599,22 @@ function createHydrationFunctions(rendererInternals) {
4468
4599
  const container = parentNode(node);
4469
4600
  remove(node);
4470
4601
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
4471
- if (parentComponent) {
4602
+ if (parentComponent && parentComponent.vnode) {
4472
4603
  parentComponent.vnode.el = vnode.el;
4473
4604
  updateHOCHostEl(parentComponent, vnode.el);
4474
4605
  }
4475
4606
  return next;
4476
4607
  };
4477
- const locateClosingAnchor = (node, open = "[", close = "]") => {
4608
+ const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
4478
4609
  let match = 0;
4479
4610
  while (node) {
4480
4611
  node = nextSibling(node);
4481
4612
  if (node && isComment(node)) {
4482
4613
  if (node.data === open) match++;
4483
- if (node.data === close) if (match === 0) return nextSibling(node);
4484
- else match--;
4614
+ if (node.data === close) {
4615
+ if (match === 0) return nextSibling(node);
4616
+ else match--;
4617
+ }
4485
4618
  }
4486
4619
  }
4487
4620
  return node;
@@ -4491,7 +4624,7 @@ function createHydrationFunctions(rendererInternals) {
4491
4624
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
4492
4625
  let parent = parentComponent;
4493
4626
  while (parent) {
4494
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4627
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
4495
4628
  parent = parent.parent;
4496
4629
  }
4497
4630
  };
@@ -4500,6 +4633,16 @@ function createHydrationFunctions(rendererInternals) {
4500
4633
  const isTemplateNode$1 = (node) => {
4501
4634
  return node.nodeType === 1 && node.tagName === "TEMPLATE";
4502
4635
  };
4636
+ const resourceProps = /*@__PURE__*/ new Set([
4637
+ "src",
4638
+ "srcset",
4639
+ "href",
4640
+ "poster"
4641
+ ]);
4642
+ function isUnchangedResourceProp(el, key, clientValue) {
4643
+ if (!resourceProps.has(key)) return false;
4644
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
4645
+ }
4503
4646
  /**
4504
4647
  * Dev only
4505
4648
  */
@@ -4543,7 +4686,10 @@ function propHasMismatch(el, key, clientValue, vnode, instance) {
4543
4686
  function getAttributeMismatch(el, key, clientValue) {
4544
4687
  let actual;
4545
4688
  let expected;
4546
- if (isBooleanAttr(key)) {
4689
+ if (key === "hidden") {
4690
+ actual = normalizeHiddenValue(el.getAttribute(key));
4691
+ expected = normalizeHiddenValue(clientValue);
4692
+ } else if (isBooleanAttr(key)) {
4547
4693
  actual = el.hasAttribute(key);
4548
4694
  expected = includeBooleanAttr(clientValue);
4549
4695
  } else if (clientValue == null) {
@@ -4571,6 +4717,11 @@ function warnPropMismatch(el, mismatchKey, mismatchType, actual, expected) {
4571
4717
  }
4572
4718
  return false;
4573
4719
  }
4720
+ function normalizeHiddenValue(value) {
4721
+ if (!isRenderableAttrValue(value)) return false;
4722
+ if (isString(value)) return value.toLowerCase() === "until-found" ? "until-found" : "";
4723
+ return includeBooleanAttr(value) ? "" : false;
4724
+ }
4574
4725
  function toClassSet(str) {
4575
4726
  return new Set(str.trim().split(/\s+/));
4576
4727
  }
@@ -4709,16 +4860,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
4709
4860
  return teardown;
4710
4861
  };
4711
4862
  function forEachElement(node, cb) {
4712
- if (isComment(node) && node.data === "[") {
4863
+ if (isComment(node) && (node.data === "[" || node.data === "(")) {
4864
+ const open = node.data;
4865
+ const close = open === "[" ? "]" : ")";
4713
4866
  let depth = 1;
4714
4867
  let next = node.nextSibling;
4715
4868
  while (next) {
4716
4869
  if (next.nodeType === 1) {
4717
4870
  if (cb(next) === false) break;
4718
4871
  } else if (isComment(next)) {
4719
- if (next.data === "]") {
4872
+ if (next.data === close) {
4720
4873
  if (--depth === 0) break;
4721
- } else if (next.data === "[") depth++;
4874
+ } else if (next.data === open) depth++;
4722
4875
  }
4723
4876
  next = next.nextSibling;
4724
4877
  }
@@ -4727,14 +4880,14 @@ function forEachElement(node, cb) {
4727
4880
  //#endregion
4728
4881
  //#region packages/runtime-core/src/apiAsyncComponent.ts
4729
4882
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4730
- /* @__NO_SIDE_EFFECTS__ */
4883
+ /*@__NO_SIDE_EFFECTS__*/
4731
4884
  function defineAsyncComponent(source) {
4732
4885
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
4733
4886
  return /* @__PURE__ */ defineComponent({
4734
4887
  name: "AsyncComponentWrapper",
4735
4888
  __asyncLoader: load,
4736
4889
  __asyncHydrate(el, instance, hydrate) {
4737
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
4890
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
4738
4891
  },
4739
4892
  get __asyncResolved() {
4740
4893
  return getResolvedComp();
@@ -4853,10 +5006,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
4853
5006
  * shared between core and vapor
4854
5007
  * @internal
4855
5008
  */
4856
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
5009
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4857
5010
  const wasConnected = el.isConnected;
4858
5011
  let patched = false;
4859
- (instance.bu || (instance.bu = [])).push(() => patched = true);
5012
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
4860
5013
  const performHydrate = () => {
4861
5014
  if (patched) {
4862
5015
  {
@@ -4946,10 +5099,13 @@ const KeepAliveImpl = {
4946
5099
  });
4947
5100
  let pendingCacheKey = null;
4948
5101
  const cacheSubtree = () => {
4949
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4950
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4951
- }, void 0, keepAliveInstance.subTree.suspense);
4952
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5102
+ if (pendingCacheKey != null) {
5103
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
5104
+ const vnode = getInnerChild(keepAliveInstance.subTree);
5105
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
5106
+ }, void 0, keepAliveInstance.subTree.suspense);
5107
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
5108
+ }
4953
5109
  };
4954
5110
  onMounted(cacheSubtree);
4955
5111
  onUpdated(cacheSubtree);
@@ -5020,7 +5176,7 @@ const decorate$2 = (t) => {
5020
5176
  t.__isBuiltIn = true;
5021
5177
  return t;
5022
5178
  };
5023
- const KeepAlive = /* @__PURE__ */ decorate$2(KeepAliveImpl);
5179
+ const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
5024
5180
  function matches(pattern, name) {
5025
5181
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
5026
5182
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -5111,7 +5267,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
5111
5267
  try {
5112
5268
  return callWithAsyncErrorHandling(hook, target, type, args);
5113
5269
  } finally {
5114
- setCurrentInstance(...prev);
5270
+ restoreCurrentInstance(prev);
5115
5271
  setActiveSub(prevSub);
5116
5272
  }
5117
5273
  });
@@ -5236,16 +5392,17 @@ function compatH(type, propsOrChildren, children) {
5236
5392
  }
5237
5393
  const l = arguments.length;
5238
5394
  const is2ndArgArrayChildren = isArray(propsOrChildren);
5239
- if (l === 2 || is2ndArgArrayChildren) if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5240
- if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5241
- return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5242
- } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5243
- else {
5395
+ if (l === 2 || is2ndArgArrayChildren) {
5396
+ if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
5397
+ if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
5398
+ return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
5399
+ } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
5400
+ } else {
5244
5401
  if (isVNode(children)) children = [children];
5245
5402
  return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
5246
5403
  }
5247
5404
  }
5248
- const skipLegacyRootLevelProps = /* @__PURE__ */ makeMap("staticStyle,staticClass,directives,model,hook");
5405
+ const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
5249
5406
  function convertLegacyProps(legacyProps, type) {
5250
5407
  if (!legacyProps) return null;
5251
5408
  const converted = {};
@@ -5257,8 +5414,10 @@ function convertLegacyProps(legacyProps, type) {
5257
5414
  if (key === "nativeOn") handlerKey += `Native`;
5258
5415
  const existing = converted[handlerKey];
5259
5416
  const incoming = listeners[event];
5260
- if (existing !== incoming) if (existing) converted[handlerKey] = [].concat(existing, incoming);
5261
- else converted[handlerKey] = incoming;
5417
+ if (existing !== incoming) {
5418
+ if (existing) converted[handlerKey] = [].concat(existing, incoming);
5419
+ else converted[handlerKey] = incoming;
5420
+ }
5262
5421
  }
5263
5422
  } else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
5264
5423
  if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
@@ -5357,7 +5516,7 @@ function convertLegacyFunctionalComponent(comp) {
5357
5516
  const legacyFn = comp.render;
5358
5517
  const Func = (props, ctx) => {
5359
5518
  const instance = getCurrentInstance();
5360
- return legacyFn(compatH, {
5519
+ const legacyCtx = {
5361
5520
  props,
5362
5521
  children: instance.vnode.children || [],
5363
5522
  data: instance.vnode.props || {},
@@ -5377,7 +5536,8 @@ function convertLegacyFunctionalComponent(comp) {
5377
5536
  }
5378
5537
  return {};
5379
5538
  }
5380
- });
5539
+ };
5540
+ return legacyFn(compatH, legacyCtx);
5381
5541
  };
5382
5542
  Func.props = comp.props;
5383
5543
  Func.displayName = comp.name;
@@ -5406,23 +5566,25 @@ function renderList(source, renderItem, cache, index) {
5406
5566
  }
5407
5567
  ret = new Array(source.length);
5408
5568
  for (let i = 0, l = source.length; i < l; i++) ret[i] = renderItem(needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], i, void 0, cached && cached[i]);
5409
- } else if (typeof source === "number") if (!Number.isInteger(source) || source < 0) {
5410
- warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5411
- ret = [];
5412
- } else {
5413
- ret = new Array(source);
5414
- for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5415
- }
5416
- else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5417
- else {
5418
- const keys = Object.keys(source);
5419
- ret = new Array(keys.length);
5420
- for (let i = 0, l = keys.length; i < l; i++) {
5421
- const key = keys[i];
5422
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5569
+ } else if (typeof source === "number") {
5570
+ if (!Number.isInteger(source) || source < 0) {
5571
+ warn$1(`The v-for range expects a positive integer value but got ${source}.`);
5572
+ ret = [];
5573
+ } else {
5574
+ ret = new Array(source);
5575
+ for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
5423
5576
  }
5424
- }
5425
- else ret = [];
5577
+ } else if (isObject(source)) {
5578
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
5579
+ else {
5580
+ const keys = Object.keys(source);
5581
+ ret = new Array(keys.length);
5582
+ for (let i = 0, l = keys.length; i < l; i++) {
5583
+ const key = keys[i];
5584
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
5585
+ }
5586
+ }
5587
+ } else ret = [];
5426
5588
  if (cache) cache[index] = ret;
5427
5589
  return ret;
5428
5590
  }
@@ -5447,18 +5609,45 @@ function createSlots(slots, dynamicSlots) {
5447
5609
  //#endregion
5448
5610
  //#region packages/runtime-core/src/helpers/renderSlot.ts
5449
5611
  /**
5612
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
5613
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
5614
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
5615
+ * "which one". Internal to vapor interop.
5616
+ */
5617
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
5618
+ /**
5619
+ * Invokes a VDOM slot fallback under the outlet owner that produced it, the
5620
+ * way `renderSlot` would have rendered it inline. Vapor interop invokes
5621
+ * fallbacks late, outside any render, so it passes the owner recorded on the
5622
+ * vapor slot vnode. Internal to vapor interop.
5623
+ */
5624
+ function invokeSlotFallback(fallback, owner) {
5625
+ if (!owner) return fallback();
5626
+ const prev = setCurrentRenderingInstance(owner);
5627
+ const prevStackSize = blockStack.length;
5628
+ try {
5629
+ return fallback();
5630
+ } finally {
5631
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5632
+ setCurrentRenderingInstance(prev);
5633
+ }
5634
+ }
5635
+ /**
5450
5636
  * Compiler runtime helper for rendering `<slot/>`
5451
5637
  * @private
5452
5638
  */
5453
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5639
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
5640
+ if (props == null) props = {};
5454
5641
  let slot = slots[name];
5455
- if (fallback) fallback.__vdom = true;
5456
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
5642
+ const vaporSlot = slot && slot[rawVaporSlotKey];
5457
5643
  if (vaporSlot) {
5458
5644
  const ret = (openBlock(), createBlock(VaporSlot, props));
5459
5645
  ret.vs = {
5460
5646
  slot: vaporSlot,
5461
- fallback
5647
+ outlets: fallback ? [{
5648
+ fallback,
5649
+ owner: currentRenderingInstance
5650
+ }] : void 0
5462
5651
  };
5463
5652
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
5464
5653
  return ret;
@@ -5479,9 +5668,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5479
5668
  let rendered;
5480
5669
  try {
5481
5670
  const validSlotContent = slot && ensureValidVNode(slot(props));
5482
- ensureVaporSlotFallback(validSlotContent, fallback);
5671
+ let attached = false;
5672
+ if (fallback && validSlotContent && currentRenderingInstance) {
5673
+ const interop = currentRenderingInstance.appContext.vapor;
5674
+ if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
5675
+ }
5483
5676
  const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
5484
5677
  rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
5678
+ if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
5679
+ if (attached) rendered.vo = true;
5485
5680
  } catch (err) {
5486
5681
  for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5487
5682
  throw err;
@@ -5499,10 +5694,6 @@ function ensureValidVNode(vnodes) {
5499
5694
  return true;
5500
5695
  }) ? vnodes : null;
5501
5696
  }
5502
- function ensureVaporSlotFallback(vnodes, fallback) {
5503
- let vaporSlot;
5504
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
5505
- }
5506
5697
  //#endregion
5507
5698
  //#region packages/runtime-core/src/helpers/toHandlers.ts
5508
5699
  /**
@@ -5561,12 +5752,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
5561
5752
  function mapKeyToName(slots) {
5562
5753
  for (let i = 0; i < slots.length; i++) {
5563
5754
  const fn = slots[i];
5564
- if (fn) if (isArray(fn)) mapKeyToName(fn);
5565
- else fn.name = fn.key || "default";
5755
+ if (fn) {
5756
+ if (isArray(fn)) mapKeyToName(fn);
5757
+ else fn.name = fn.key || "default";
5758
+ }
5566
5759
  }
5567
5760
  return slots;
5568
5761
  }
5569
- const staticCacheMap = /* @__PURE__ */ new WeakMap();
5762
+ const staticCacheMap = /*@__PURE__*/ new WeakMap();
5570
5763
  function legacyRenderStatic(instance, index) {
5571
5764
  let cache = staticCacheMap.get(instance);
5572
5765
  if (!cache) staticCacheMap.set(instance, cache = []);
@@ -5699,11 +5892,38 @@ const getPublicInstance = (i) => {
5699
5892
  if (isStatefulComponent(i)) return getComponentPublicInstance(i);
5700
5893
  return getPublicInstance(i.parent);
5701
5894
  };
5895
+ const resolveDevRootEl = (vnode) => {
5896
+ let found = false;
5897
+ while (true) {
5898
+ if (vnode.patchFlag > 0 && vnode.patchFlag & 2048) {
5899
+ const root = filterSingleRoot(vnode.children);
5900
+ if (!root) return;
5901
+ vnode = root;
5902
+ found = true;
5903
+ continue;
5904
+ }
5905
+ const component = vnode.component;
5906
+ if (component && component.subTree) {
5907
+ vnode = component.subTree;
5908
+ continue;
5909
+ }
5910
+ const suspense = vnode.suspense;
5911
+ if (suspense && suspense.activeBranch) {
5912
+ vnode = suspense.activeBranch;
5913
+ continue;
5914
+ }
5915
+ return found ? vnode.el : void 0;
5916
+ }
5917
+ };
5918
+ const getDevRootFragmentEl = (i) => {
5919
+ const el = i.subTree && resolveDevRootEl(i.subTree);
5920
+ return el === void 0 ? i.vnode.el : el;
5921
+ };
5702
5922
  let publicPropertiesMap;
5703
5923
  const getPublicPropertiesMap = () => {
5704
5924
  if (!publicPropertiesMap) publicPropertiesMap = extend(Object.create(null), {
5705
5925
  $: (i) => i,
5706
- $el: (i) => i.vnode.el,
5926
+ $el: (i) => getDevRootFragmentEl(i),
5707
5927
  $data: (i) => i.data,
5708
5928
  $props: (i) => /* @__PURE__ */ shallowReadonly(i.props),
5709
5929
  $attrs: (i) => /* @__PURE__ */ shallowReadonly(i.attrs),
@@ -5816,7 +6036,7 @@ PublicInstanceProxyHandlers.ownKeys = (target) => {
5816
6036
  warn$1("Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.");
5817
6037
  return Reflect.ownKeys(target);
5818
6038
  };
5819
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
6039
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
5820
6040
  get(target, key) {
5821
6041
  if (key === Symbol.unscopables) return;
5822
6042
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -6001,12 +6221,13 @@ function mergeDefaults(raw, defaults) {
6001
6221
  for (const key in defaults) {
6002
6222
  if (key.startsWith("__skip")) continue;
6003
6223
  let opt = props[key];
6004
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6005
- type: opt,
6006
- default: defaults[key]
6007
- };
6008
- else opt.default = defaults[key];
6009
- else if (opt === null) opt = props[key] = { default: defaults[key] };
6224
+ if (opt) {
6225
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
6226
+ type: opt,
6227
+ default: defaults[key]
6228
+ };
6229
+ else opt.default = defaults[key];
6230
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
6010
6231
  else warn$1(`props default key "${key}" has no corresponding declaration.`);
6011
6232
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
6012
6233
  }
@@ -6056,37 +6277,32 @@ function createPropsRestProxy(props, excludedKeys) {
6056
6277
  function withAsyncContext(getAwaitable) {
6057
6278
  const ctx = getCurrentGenericInstance();
6058
6279
  const inSSRSetup = isInSSRComponentSetup;
6059
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
6060
6280
  if (!ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
6061
6281
  let awaitable = getAwaitable();
6062
6282
  setCurrentInstance(null, void 0);
6063
6283
  if (inSSRSetup) setInSSRSetupState(false);
6064
6284
  const restore = () => {
6065
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6285
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6066
6286
  setCurrentInstance(ctx);
6067
6287
  if (inSSRSetup) setInSSRSetupState(true);
6068
- const reset = restoreAsyncContext && restoreAsyncContext();
6069
- return () => {
6070
- if (reset) reset();
6071
- if (resetStoppedScope) resetStoppedScope.reset();
6072
- };
6288
+ return stoppedScope;
6073
6289
  };
6074
6290
  const cleanup = () => {
6075
6291
  setCurrentInstance(null, void 0);
6076
6292
  if (inSSRSetup) setInSSRSetupState(false);
6077
6293
  };
6078
6294
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
6079
- const reset = restore();
6295
+ const stoppedScope = restore();
6080
6296
  Promise.resolve().then(() => Promise.resolve().then(() => {
6081
- if (reset) reset();
6297
+ if (stoppedScope) stoppedScope.reset();
6082
6298
  cleanup();
6083
6299
  }));
6084
6300
  throw e;
6085
6301
  });
6086
6302
  return [awaitable, () => {
6087
- const reset = restore();
6303
+ const stoppedScope = restore();
6088
6304
  Promise.resolve().then(() => {
6089
- if (reset) reset();
6305
+ if (stoppedScope) stoppedScope.reset();
6090
6306
  cleanup();
6091
6307
  });
6092
6308
  }];
@@ -6149,11 +6365,12 @@ function applyOptions(instance) {
6149
6365
  const opt = computedOptions[key];
6150
6366
  const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
6151
6367
  if (get === NOOP) warn$1(`Computed property "${key}" has no getter.`);
6368
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
6369
+ warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6370
+ };
6152
6371
  const c = computed({
6153
6372
  get,
6154
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : () => {
6155
- warn$1(`Write operation failed: computed property "${key}" is readonly.`);
6156
- }
6373
+ set
6157
6374
  });
6158
6375
  Object.defineProperty(ctx, key, {
6159
6376
  enumerable: true,
@@ -6213,9 +6430,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
6213
6430
  for (const key in injectOptions) {
6214
6431
  const opt = injectOptions[key];
6215
6432
  let injected;
6216
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6217
- else injected = inject(opt.from || key);
6218
- else injected = inject(opt);
6433
+ if (isObject(opt)) {
6434
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
6435
+ else injected = inject(opt.from || key);
6436
+ } else injected = inject(opt);
6219
6437
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
6220
6438
  enumerable: true,
6221
6439
  configurable: true,
@@ -6235,7 +6453,8 @@ function createWatcher(raw, ctx, publicThis, key) {
6235
6453
  {
6236
6454
  const cur = getCurrentInstance();
6237
6455
  const instance = cur && getCurrentScope() === cur.scope ? cur : null;
6238
- if (isArray(getter()) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6456
+ const newValue = getter();
6457
+ if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
6239
6458
  const baseGetter = getter;
6240
6459
  getter = () => {
6241
6460
  const val = baseGetter();
@@ -6248,13 +6467,14 @@ function createWatcher(raw, ctx, publicThis, key) {
6248
6467
  if (isFunction(handler)) watch(getter, handler, options);
6249
6468
  else warn$1(`Invalid watch handler specified by key "${raw}"`, handler);
6250
6469
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
6251
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6252
- else {
6253
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6254
- if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6255
- else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6256
- }
6257
- else warn$1(`Invalid watch option: "${key}"`, raw);
6470
+ else if (isObject(raw)) {
6471
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
6472
+ else {
6473
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
6474
+ if (isFunction(handler)) watch(getter, handler, extend(raw, options));
6475
+ else warn$1(`Invalid watch handler specified by key "${raw.handler}"`, handler);
6476
+ }
6477
+ } else warn$1(`Invalid watch option: "${key}"`, raw);
6258
6478
  }
6259
6479
  /**
6260
6480
  * Resolve merged options and cache it on the component.
@@ -6268,12 +6488,13 @@ function resolveMergedOptions(instance) {
6268
6488
  const cached = cache.get(base);
6269
6489
  let resolved;
6270
6490
  if (cached) resolved = cached;
6271
- else if (!globalMixins.length && !mixins && !extendsOptions) if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6272
- resolved = extend({}, base);
6273
- resolved.parent = instance.parent && instance.parent.proxy;
6274
- resolved.propsData = instance.vnode.props;
6275
- } else resolved = base;
6276
- else {
6491
+ else if (!globalMixins.length && !mixins && !extendsOptions) {
6492
+ if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
6493
+ resolved = extend({}, base);
6494
+ resolved.parent = instance.parent && instance.parent.proxy;
6495
+ resolved.propsData = instance.vnode.props;
6496
+ } else resolved = base;
6497
+ } else {
6277
6498
  resolved = {};
6278
6499
  if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
6279
6500
  mergeOptions(resolved, base, optionMergeStrategies);
@@ -6346,7 +6567,7 @@ function mergeObjectOptions(to, from) {
6346
6567
  }
6347
6568
  function mergeEmitsOrPropsOptions(to, from) {
6348
6569
  if (to) {
6349
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
6570
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
6350
6571
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
6351
6572
  } else return from;
6352
6573
  }
@@ -6407,7 +6628,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6407
6628
  if (options.el) return vm.$mount(options.el);
6408
6629
  else return vm;
6409
6630
  }
6410
- Vue.version = `2.6.14-compat:3.6.0-rc.1`;
6631
+ Vue.version = `2.6.14-compat:3.6.0-rc.10`;
6411
6632
  Vue.config = singletonApp.config;
6412
6633
  Vue.use = (plugin, ...options) => {
6413
6634
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -6797,8 +7018,10 @@ function createAppAPI(mount, unmount, getPublicInstance, render) {
6797
7018
  } else warn$1(`Cannot unmount an app that is not mounted.`);
6798
7019
  },
6799
7020
  provide(key, value) {
6800
- if (key in context.provides) if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
6801
- else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7021
+ if (key in context.provides) {
7022
+ if (hasOwn(context.provides, key)) warn$1(`App already provides property with key "${String(key)}". It will be overwritten with the new value.`);
7023
+ else warn$1(`App already provides property with key "${String(key)}" inherited from its parent element. It will be overwritten with the new value.`);
7024
+ }
6802
7025
  context.provides[key] = value;
6803
7026
  return app;
6804
7027
  },
@@ -6880,13 +7103,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
6880
7103
  const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
6881
7104
  const res = customRef((track, trigger) => {
6882
7105
  let localValue;
7106
+ let prevPropValue = EMPTY_OBJ;
6883
7107
  let prevSetValue = EMPTY_OBJ;
6884
7108
  let prevEmittedValue;
6885
7109
  watchSyncEffect(() => {
6886
7110
  const propValue = props[camelizedName];
6887
- if (hasChanged(localValue, propValue)) {
6888
- localValue = propValue;
6889
- trigger();
7111
+ if (hasChanged(prevPropValue, propValue)) {
7112
+ prevPropValue = propValue;
7113
+ if (hasChanged(localValue, propValue)) {
7114
+ localValue = propValue;
7115
+ trigger();
7116
+ }
6890
7117
  }
6891
7118
  });
6892
7119
  return {
@@ -6948,12 +7175,14 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6948
7175
  if (instance.isUnmounted) return;
6949
7176
  {
6950
7177
  const { emitsOptions, propsOptions } = instance;
6951
- if (emitsOptions) if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
6952
- 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.`);
6953
- } else {
6954
- const validator = emitsOptions[event];
6955
- if (isFunction(validator)) {
6956
- if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7178
+ if (emitsOptions) {
7179
+ if (!(event in emitsOptions) && !(event.startsWith("hook:") || event.startsWith(compatModelEventPrefix))) {
7180
+ 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.`);
7181
+ } else {
7182
+ const validator = emitsOptions[event];
7183
+ if (isFunction(validator)) {
7184
+ if (!validator(...rawArgs)) warn$1(`Invalid event arguments: event validation failed for event "${event}".`);
7185
+ }
6957
7186
  }
6958
7187
  }
6959
7188
  }
@@ -6963,7 +7192,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
6963
7192
  const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
6964
7193
  if (modifiers) {
6965
7194
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
6966
- if (modifiers.number) args = rawArgs.map(looseToNumber);
7195
+ if (modifiers.number) args = args.map(looseToNumber);
6967
7196
  }
6968
7197
  devtoolsComponentEmit(instance, event, args);
6969
7198
  {
@@ -7105,8 +7334,9 @@ function renderComponentRoot(instance) {
7105
7334
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
7106
7335
  }
7107
7336
  if (vnode.transition) {
7108
- if (!isElementRoot(root)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7109
- setTransitionHooks(root, vnode.transition);
7337
+ const child = isTeleport(root.type) ? getInnerChild$1(root) || root : root;
7338
+ if (!isElementRoot(child)) warn$1("Component inside <Transition> renders non-element root node that cannot be animated.");
7339
+ setTransitionHooks(child, vnode.transition);
7110
7340
  }
7111
7341
  if (setRoot) setRoot(root);
7112
7342
  else result = root;
@@ -7157,18 +7387,21 @@ function filterSingleRoot(children, recurse = true) {
7157
7387
  for (let i = 0; i < children.length; i++) {
7158
7388
  const child = children[i];
7159
7389
  if (isVNode(child)) {
7160
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
7161
- else {
7162
- singleRoot = child;
7163
- if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7390
+ if (child.type !== Comment || child.children === "v-if") {
7391
+ if (singleRoot) return;
7392
+ else {
7393
+ singleRoot = child;
7394
+ if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) return filterSingleRoot(singleRoot.children);
7395
+ }
7164
7396
  }
7165
7397
  } else return;
7166
7398
  }
7167
7399
  return singleRoot;
7168
7400
  }
7401
+ const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
7169
7402
  const getFunctionalFallthrough = (attrs) => {
7170
7403
  let res;
7171
- for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
7404
+ for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
7172
7405
  return res;
7173
7406
  };
7174
7407
  const filterModelListeners = (attrs, props) => {
@@ -7304,16 +7537,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7304
7537
  let key = propsToUpdate[i];
7305
7538
  if (isEmitListener(instance.emitsOptions, key)) continue;
7306
7539
  const value = rawProps[key];
7307
- if (options) if (hasOwn(attrs, key)) {
7308
- if (value !== attrs[key]) {
7309
- attrs[key] = value;
7310
- hasAttrsChanged = true;
7540
+ if (options) {
7541
+ if (hasOwn(attrs, key)) {
7542
+ if (value !== attrs[key]) {
7543
+ attrs[key] = value;
7544
+ hasAttrsChanged = true;
7545
+ }
7546
+ } else {
7547
+ const camelizedKey = camelize(key);
7548
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7311
7549
  }
7312
7550
  } else {
7313
- const camelizedKey = camelize(key);
7314
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
7315
- }
7316
- else {
7317
7551
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7318
7552
  else if (shouldSkipAttr(key, instance)) continue;
7319
7553
  if (value !== attrs[key]) {
@@ -7326,9 +7560,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
7326
7560
  } else {
7327
7561
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
7328
7562
  let kebabKey;
7329
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
7330
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7331
- } else delete props[key];
7563
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
7564
+ if (options) {
7565
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
7566
+ } else delete props[key];
7567
+ }
7332
7568
  if (attrs !== rawCurrentProps) {
7333
7569
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
7334
7570
  delete attrs[key];
@@ -7349,9 +7585,10 @@ function setFullProps(instance, rawProps, props, attrs) {
7349
7585
  if (key === "inline-template") continue;
7350
7586
  const value = rawProps[key];
7351
7587
  let camelKey;
7352
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7353
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7354
- else if (!isEmitListener(instance.emitsOptions, key)) {
7588
+ if (options && hasOwn(options, camelKey = camelize(key))) {
7589
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
7590
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
7591
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
7355
7592
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
7356
7593
  else if (shouldSkipAttr(key, instance)) continue;
7357
7594
  if (!(key in attrs) || value !== attrs[key]) {
@@ -7400,7 +7637,7 @@ function baseResolveDefault(factory, instance, key) {
7400
7637
  const prev = setCurrentInstance(instance);
7401
7638
  const props = /* @__PURE__ */ toRaw(instance.props);
7402
7639
  value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
7403
- setCurrentInstance(...prev);
7640
+ restoreCurrentInstance(prev);
7404
7641
  return value;
7405
7642
  }
7406
7643
  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
@@ -7517,7 +7754,7 @@ function validateProp(key, value, propOptions, resolvedProps, isAbsent) {
7517
7754
  }
7518
7755
  if (validator && !validator(value, /* @__PURE__ */ shallowReadonly(resolvedProps))) warn$1("Invalid prop: custom validator check failed for prop \"" + key + "\".");
7519
7756
  }
7520
- const isSimpleType = /* @__PURE__ */ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7757
+ const isSimpleType = /*@__PURE__*/ makeMap("String,Number,Boolean,Function,Symbol,BigInt");
7521
7758
  /**
7522
7759
  * dev only
7523
7760
  */
@@ -7630,12 +7867,13 @@ const updateSlots = (instance, children, optimized) => {
7630
7867
  let deletionComparisonTarget = EMPTY_OBJ;
7631
7868
  if (vnode.shapeFlag & 32) {
7632
7869
  const type = children._;
7633
- if (type) if (isHmrUpdating) {
7634
- assignSlots(slots, children, optimized);
7635
- trigger(instance, "set", "$slots");
7636
- } else if (optimized && type === 1) needDeletionCheck = false;
7637
- else assignSlots(slots, children, optimized);
7638
- else {
7870
+ if (type) {
7871
+ if (isHmrUpdating) {
7872
+ assignSlots(slots, children, optimized);
7873
+ trigger(instance, "set", "$slots");
7874
+ } else if (optimized && type === 1) needDeletionCheck = false;
7875
+ else assignSlots(slots, children, optimized);
7876
+ } else {
7639
7877
  needDeletionCheck = !children.$stable;
7640
7878
  normalizeObjectSlots(children, slots, instance);
7641
7879
  }
@@ -7653,7 +7891,7 @@ const updateSlots = (instance, children, optimized) => {
7653
7891
  let supported;
7654
7892
  let perf;
7655
7893
  let cachedNow$1 = 0;
7656
- const p$1 = /* @__PURE__ */ Promise.resolve();
7894
+ const p$1 = /*@__PURE__*/ Promise.resolve();
7657
7895
  const getNow$1 = () => cachedNow$1 || (p$1.then(() => cachedNow$1 = 0), cachedNow$1 = isSupported() ? perf.now() : Date.now());
7658
7896
  /**
7659
7897
  * @internal
@@ -7734,6 +7972,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7734
7972
  optimized = false;
7735
7973
  n2.dynamicChildren = null;
7736
7974
  }
7975
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
7976
+ if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
7977
+ n2.dynamicChildren.hasOnce = true;
7978
+ }
7737
7979
  const { type, ref, shapeFlag } = n2;
7738
7980
  switch (type) {
7739
7981
  case Text:
@@ -7750,7 +7992,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7750
7992
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7751
7993
  break;
7752
7994
  case VaporSlot:
7753
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
7995
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
7754
7996
  break;
7755
7997
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
7756
7998
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -7869,7 +8111,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7869
8111
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
7870
8112
  };
7871
8113
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
7872
- for (let i = start; i < children.length; i++) patch(null, children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]), container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8114
+ for (let i = start; i < children.length; i++) {
8115
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
8116
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8117
+ }
7873
8118
  };
7874
8119
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7875
8120
  const el = n2.el = n1.el;
@@ -7881,6 +8126,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7881
8126
  let vnodeHook;
7882
8127
  parentComponent && toggleRecurse(parentComponent, false);
7883
8128
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8129
+ if (n2.ibu) n2.ibu();
7884
8130
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
7885
8131
  parentComponent && toggleRecurse(parentComponent, true);
7886
8132
  if (isHmrUpdating || dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -7914,8 +8160,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7914
8160
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
7915
8161
  }
7916
8162
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
7917
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
8163
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
7918
8164
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
8165
+ n2.iu && n2.iu();
7919
8166
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
7920
8167
  }, void 0, parentSuspense);
7921
8168
  };
@@ -7923,7 +8170,8 @@ function baseCreateRenderer(options, createHydrationFns) {
7923
8170
  for (let i = 0; i < newChildren.length; i++) {
7924
8171
  const oldVNode = oldChildren[i];
7925
8172
  const newVNode = newChildren[i];
7926
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
8173
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
8174
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
7927
8175
  }
7928
8176
  };
7929
8177
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -7961,41 +8209,15 @@ function baseCreateRenderer(options, createHydrationFns) {
7961
8209
  };
7962
8210
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
7963
8211
  n2.slotScopeIds = slotScopeIds;
7964
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
7965
- else {
7966
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
7967
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
7968
- if (n2.dirs) {
7969
- invokeDirectiveHook(n2, null, parentComponent, "created");
7970
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
7971
- }
7972
- }, () => {
7973
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
7974
- });
7975
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
7976
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
7977
- if (vnodeMountedHook) {
7978
- const scopedVNode = n2;
7979
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
7980
- }
7981
- }
7982
- else {
7983
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
7984
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
7985
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
7986
- }, () => {
7987
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
7988
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
7989
- });
7990
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
7991
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
7992
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
7993
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
7994
- }, void 0, parentSuspense);
7995
- }
7996
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
7997
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
7998
- else updateComponent(n1, n2, optimized);
8212
+ if (n2.type.__vapor) {
8213
+ if (n1 == null) {
8214
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
8215
+ else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
8216
+ } else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
8217
+ } else if (n1 == null) {
8218
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
8219
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
8220
+ } else updateComponent(n1, n2, optimized);
7999
8221
  };
8000
8222
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
8001
8223
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
@@ -8039,16 +8261,18 @@ function baseCreateRenderer(options, createHydrationFns) {
8039
8261
  };
8040
8262
  const updateComponent = (n1, n2, optimized) => {
8041
8263
  const instance = n2.component = n1.component;
8042
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
8043
- pushWarningContext(n2);
8044
- updateComponentPreRender(instance, n2, optimized);
8045
- popWarningContext();
8046
- return;
8264
+ if (shouldUpdateComponent(n1, n2, optimized)) {
8265
+ if (instance.asyncDep && !instance.asyncResolved) {
8266
+ pushWarningContext(n2);
8267
+ n2.el = n1.el;
8268
+ updateComponentPreRender(instance, n2, optimized);
8269
+ popWarningContext();
8270
+ return;
8271
+ } else {
8272
+ instance.next = n2;
8273
+ instance.effect.run();
8274
+ }
8047
8275
  } else {
8048
- instance.next = n2;
8049
- instance.effect.run();
8050
- }
8051
- else {
8052
8276
  n2.el = n1.el;
8053
8277
  instance.vnode = n2;
8054
8278
  }
@@ -8151,6 +8375,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8151
8375
  } else next = vnode;
8152
8376
  if (bu) invokeArrayFns(bu);
8153
8377
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
8378
+ if (next.ibu) next.ibu();
8154
8379
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
8155
8380
  toggleRecurse(instance, true);
8156
8381
  startMeasure(instance, `render`);
@@ -8164,7 +8389,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8164
8389
  next.el = nextTree.el;
8165
8390
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
8166
8391
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
8167
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
8392
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
8393
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
8394
+ next.iu && next.iu();
8395
+ }, void 0, parentSuspense);
8168
8396
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
8169
8397
  devtoolsComponentUpdated(instance);
8170
8398
  popWarningContext();
@@ -8205,9 +8433,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8205
8433
  if (shapeFlag & 8) {
8206
8434
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
8207
8435
  if (c2 !== c1) hostSetElementText(container, c2);
8208
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8209
- else unmountChildren(c1, parentComponent, parentSuspense, true);
8210
- else {
8436
+ } else if (prevShapeFlag & 16) {
8437
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8438
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
8439
+ } else {
8211
8440
  if (prevShapeFlag & 8) hostSetElementText(container, "");
8212
8441
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8213
8442
  }
@@ -8306,15 +8535,17 @@ function baseCreateRenderer(options, createHydrationFns) {
8306
8535
  const anchorVNode = c2[nextIndex + 1];
8307
8536
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
8308
8537
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
8309
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8310
- else j--;
8538
+ else if (moved) {
8539
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
8540
+ else j--;
8541
+ }
8311
8542
  }
8312
8543
  }
8313
8544
  };
8314
8545
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
8315
8546
  const { el, type, transition, children, shapeFlag } = vnode;
8316
8547
  if (isVaporComponent(type) || type === VaporSlot) {
8317
- getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
8548
+ getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
8318
8549
  return;
8319
8550
  }
8320
8551
  if (shapeFlag & 6) {
@@ -8339,54 +8570,37 @@ function baseCreateRenderer(options, createHydrationFns) {
8339
8570
  moveStaticNode(vnode, container, anchor);
8340
8571
  return;
8341
8572
  }
8342
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8343
- else {
8344
- const { leave, delayLeave, afterLeave } = transition;
8345
- const remove = () => {
8573
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
8574
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8575
+ else performTransitionLeave(el, transition, () => {
8346
8576
  if (vnode.ctx.isUnmounted) hostRemove(el);
8347
8577
  else hostInsert(el, container, anchor);
8348
- };
8349
- const performLeave = () => {
8350
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8351
- if (el._isLeaving) el[leaveCbKey](true);
8352
- if (transition.persisted && !wasLeaving) remove();
8353
- else leave(el, () => {
8354
- remove();
8355
- afterLeave && afterLeave();
8356
- });
8357
- };
8358
- if (delayLeave) delayLeave(el, remove, performLeave);
8359
- else performLeave();
8360
- }
8361
- else hostInsert(el, container, anchor);
8578
+ }, true, true);
8579
+ } else hostInsert(el, container, anchor);
8362
8580
  };
8363
8581
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
8364
8582
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
8365
- if (patchFlag === -2) optimized = false;
8583
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
8366
8584
  if (ref != null) {
8367
8585
  const prevSub = setActiveSub();
8368
8586
  setRef(ref, null, parentSuspense, vnode, true);
8369
8587
  setActiveSub(prevSub);
8370
8588
  }
8371
- if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
8589
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
8372
8590
  if (shapeFlag & 256) {
8373
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
8591
+ if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
8374
8592
  else parentComponent.ctx.deactivate(vnode);
8375
8593
  return;
8376
8594
  }
8595
+ if (shapeFlag & 6 && isVaporComponent(type)) {
8596
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8597
+ return;
8598
+ }
8377
8599
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
8378
8600
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
8379
8601
  let vnodeHook;
8380
8602
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
8381
- if (shapeFlag & 6) if (isVaporComponent(type)) {
8382
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
8383
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8384
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
8385
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
8386
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
8387
- }, void 0, parentSuspense);
8388
- return;
8389
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
8603
+ if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
8390
8604
  else {
8391
8605
  if (shapeFlag & 128) {
8392
8606
  vnode.suspense.unmount(parentSuspense, doRemove);
@@ -8397,7 +8611,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8397
8611
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
8398
8612
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
8399
8613
  if (type === VaporSlot) {
8400
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
8614
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
8401
8615
  return;
8402
8616
  }
8403
8617
  if (doRemove) remove(vnode);
@@ -8421,6 +8635,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8421
8635
  }
8422
8636
  if (type === Static) {
8423
8637
  removeStaticNode(vnode);
8638
+ if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8424
8639
  return;
8425
8640
  }
8426
8641
  if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
@@ -8446,7 +8661,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8446
8661
  if (effect) {
8447
8662
  effect.stop();
8448
8663
  unmount(subTree, instance, parentSuspense, doRemove);
8449
- } else if (doRemove && subTree && instance.vnode.el) remove(subTree);
8664
+ } else if (instance.vnode.el && subTree) {
8665
+ subTree.transition = instance.vnode.transition;
8666
+ unmount(subTree, instance, parentSuspense, doRemove);
8667
+ }
8450
8668
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
8451
8669
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
8452
8670
  queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
@@ -8521,12 +8739,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
8521
8739
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
8522
8740
  }
8523
8741
  function toggleRecurse({ effect, job, vapor }, allowed) {
8524
- if (!vapor) if (allowed) {
8525
- effect.flags |= 128;
8526
- job.flags |= 2;
8527
- } else {
8528
- effect.flags &= -129;
8529
- job.flags &= -3;
8742
+ if (!vapor) {
8743
+ if (allowed) {
8744
+ effect.flags |= 128;
8745
+ job.flags |= 2;
8746
+ } else {
8747
+ effect.flags &= -129;
8748
+ job.flags &= -3;
8749
+ }
8530
8750
  }
8531
8751
  }
8532
8752
  function needTransition(parentSuspense, transition) {
@@ -8566,8 +8786,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8566
8786
  }
8567
8787
  function locateNonHydratedAsyncRoot(instance) {
8568
8788
  const subComponent = instance.subTree && instance.subTree.component;
8569
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8570
- else return locateNonHydratedAsyncRoot(subComponent);
8789
+ if (subComponent) {
8790
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
8791
+ else return locateNonHydratedAsyncRoot(subComponent);
8792
+ }
8571
8793
  }
8572
8794
  function invalidateMount(hooks) {
8573
8795
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -8586,13 +8808,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
8586
8808
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
8587
8809
  const performRemove = () => {
8588
8810
  remove();
8589
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8811
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
8590
8812
  };
8591
8813
  if (force || isElement && transition && !transition.persisted) {
8592
8814
  const { leave, delayLeave } = transition;
8593
8815
  const performLeave = () => {
8816
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8594
8817
  if (el._isLeaving && force) el[leaveCbKey](true);
8595
- leave(el, performRemove);
8818
+ if (force && transition.persisted && !wasLeaving) remove();
8819
+ else leave(el, performRemove);
8596
8820
  };
8597
8821
  if (delayLeave) delayLeave(el, performRemove, performLeave);
8598
8822
  else performLeave();
@@ -8611,7 +8835,7 @@ function isVaporComponent(type) {
8611
8835
  /**
8612
8836
  * shared between vdom and vapor
8613
8837
  */
8614
- function getInheritedScopeIds(vnode, parentComponent) {
8838
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
8615
8839
  const inheritedScopeIds = [];
8616
8840
  let currentParent = parentComponent;
8617
8841
  let currentVNode = vnode;
@@ -8627,6 +8851,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
8627
8851
  currentParent = currentParent.parent;
8628
8852
  } else break;
8629
8853
  }
8854
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
8855
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
8630
8856
  return inheritedScopeIds;
8631
8857
  }
8632
8858
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -8645,7 +8871,7 @@ const Suspense = {
8645
8871
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
8646
8872
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
8647
8873
  else {
8648
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
8874
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
8649
8875
  n2.suspense = n1.suspense;
8650
8876
  n2.suspense.vnode = n2;
8651
8877
  n2.el = n1.el;
@@ -8683,10 +8909,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8683
8909
  if (pendingBranch) {
8684
8910
  suspense.pendingBranch = newBranch;
8685
8911
  if (isSameVNodeType(pendingBranch, newBranch)) {
8686
- patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8912
+ suspense.deps++;
8913
+ patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8914
+ suspense.deps--;
8687
8915
  if (suspense.deps <= 0) suspense.resolve();
8688
8916
  else if (isInFallback) {
8689
- if (!isHydrating) {
8917
+ if (!isHydrating && !suspense.isFallbackMountPending) {
8690
8918
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8691
8919
  setActiveBranch(suspense, newFallback);
8692
8920
  }
@@ -8698,12 +8926,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
8698
8926
  suspense.activeBranch = pendingBranch;
8699
8927
  } else unmount(pendingBranch, parentComponent, suspense);
8700
8928
  suspense.deps = 0;
8929
+ for (let i = 0; i < suspense.effects.length; i++) {
8930
+ const effect = suspense.effects[i];
8931
+ if (effect.flags & 8) queuePostFlushCb(effect);
8932
+ }
8701
8933
  suspense.effects.length = 0;
8702
8934
  suspense.hiddenContainer = createElement("div");
8703
8935
  if (isInFallback) {
8704
8936
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
8705
8937
  if (suspense.deps <= 0) suspense.resolve();
8706
- else {
8938
+ else if (!suspense.isFallbackMountPending) {
8707
8939
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8708
8940
  setActiveBranch(suspense, newFallback);
8709
8941
  }
@@ -8805,7 +9037,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8805
9037
  let hasUnresolvedAncestor = false;
8806
9038
  while (parent) {
8807
9039
  if (parent.pendingBranch) {
8808
- parent.effects.push(...effects);
9040
+ for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
8809
9041
  hasUnresolvedAncestor = true;
8810
9042
  break;
8811
9043
  }
@@ -8815,6 +9047,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8815
9047
  suspense.effects = [];
8816
9048
  if (isSuspensible) {
8817
9049
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
9050
+ parentSuspenseId = void 0;
8818
9051
  parentSuspense.deps--;
8819
9052
  if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
8820
9053
  }
@@ -8829,8 +9062,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8829
9062
  const mountFallback = () => {
8830
9063
  suspense.isFallbackMountPending = false;
8831
9064
  if (!suspense.isInFallback) return;
8832
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
8833
- setActiveBranch(suspense, fallbackVNode);
9065
+ const latestFallback = suspense.vnode.ssFallback;
9066
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
9067
+ setActiveBranch(suspense, latestFallback);
8834
9068
  };
8835
9069
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
8836
9070
  if (delayEnter) {
@@ -8851,11 +9085,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
8851
9085
  registerDep(instance, onResolve) {
8852
9086
  const isInPendingSuspense = !!suspense.pendingBranch;
8853
9087
  if (isInPendingSuspense) suspense.deps++;
9088
+ const hydratedEl = instance.vnode && instance.vnode.el;
8854
9089
  instance.asyncDep.catch((err) => {
8855
9090
  handleError(err, instance, 0);
8856
9091
  }).then((asyncSetupResult) => {
8857
9092
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
8858
9093
  setCurrentInstance(null, void 0);
9094
+ if (hydratedEl && !instance.scope.active) {
9095
+ if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
9096
+ return;
9097
+ }
8859
9098
  instance.asyncResolved = true;
8860
9099
  onResolve(asyncSetupResult);
8861
9100
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -8906,9 +9145,10 @@ function normalizeSuspenseSlot(s) {
8906
9145
  return s;
8907
9146
  }
8908
9147
  function queueEffectWithSuspense(fn, id, suspense) {
8909
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
8910
- else suspense.effects.push(fn);
8911
- else queuePostFlushCb(fn, id);
9148
+ if (suspense && suspense.pendingBranch) {
9149
+ if (isArray(fn)) suspense.effects.push(...fn);
9150
+ else suspense.effects.push(fn);
9151
+ } else queuePostFlushCb(fn, id);
8912
9152
  }
8913
9153
  function setActiveBranch(suspense, branch) {
8914
9154
  suspense.activeBranch = branch;
@@ -9115,11 +9355,26 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
9115
9355
  if (shapeFlag & 128) type.normalize(vnode);
9116
9356
  } else if (children) vnode.shapeFlag |= isString(children) ? 8 : 16;
9117
9357
  if (vnode.key !== vnode.key) warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);
9358
+ if (props && vnode.shapeFlag & 1) {
9359
+ const overwritingProp = props.innerHTML != null ? "innerHTML" : props.textContent != null ? "textContent" : null;
9360
+ if (overwritingProp && hasContentChildren(vnode.children)) warn$1(`The \`${overwritingProp}\` prop on <${vnode.type}> will override its children. Remove either the \`${overwritingProp}\` prop or the children.`);
9361
+ }
9118
9362
  if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock && (vnode.patchFlag > 0 || shapeFlag & 6) && vnode.patchFlag !== 32) currentBlock.push(vnode);
9119
9363
  convertLegacyVModelProps(vnode);
9120
9364
  defineLegacyVNodeProperties(vnode);
9121
9365
  return vnode;
9122
9366
  }
9367
+ /**
9368
+ * dev only
9369
+ * Whether children would actually render something. Empty text and empty
9370
+ * arrays are ignored, mirroring the compiler's `node.children.length` check
9371
+ * for `v-html` / `v-text`.
9372
+ */
9373
+ function hasContentChildren(children) {
9374
+ if (isString(children)) return children !== "";
9375
+ if (isArray(children)) return children.length > 0;
9376
+ return false;
9377
+ }
9123
9378
  const createVNode = createVNodeWithArgsTransform;
9124
9379
  function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
9125
9380
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
@@ -9129,8 +9384,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
9129
9384
  if (isVNode(type)) {
9130
9385
  const cloned = cloneVNode(type, props, true);
9131
9386
  if (children) normalizeChildren(cloned, children);
9132
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9133
- else currentBlock.push(cloned);
9387
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
9388
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
9389
+ else currentBlock.push(cloned);
9390
+ }
9134
9391
  cloned.patchFlag = -2;
9135
9392
  return cloned;
9136
9393
  }
@@ -9191,7 +9448,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
9191
9448
  ce: vnode.ce,
9192
9449
  vi: vnode.vi,
9193
9450
  vs: cloneVaporSlotMeta(vnode),
9194
- vb: vnode.vb
9451
+ vb: vnode.vb,
9452
+ ibu: vnode.ibu,
9453
+ iu: vnode.iu,
9454
+ cacheIndex: vnode.cacheIndex
9195
9455
  };
9196
9456
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
9197
9457
  defineLegacyVNodeProperties(cloned);
@@ -9202,8 +9462,7 @@ function cloneVaporSlotMeta(vnode) {
9202
9462
  if (!vaporSlot) return vaporSlot;
9203
9463
  const cloned = {
9204
9464
  slot: vaporSlot.slot,
9205
- fallback: vaporSlot.fallback,
9206
- outletFallback: vaporSlot.outletFallback
9465
+ outlets: vaporSlot.outlets
9207
9466
  };
9208
9467
  if (vnode.el) {
9209
9468
  cloned.state = vaporSlot.state;
@@ -9255,25 +9514,28 @@ function normalizeChildren(vnode, children) {
9255
9514
  const { shapeFlag } = vnode;
9256
9515
  if (children == null) children = null;
9257
9516
  else if (isArray(children)) type = 16;
9258
- else if (typeof children === "object") if (shapeFlag & 65) {
9259
- const slot = children.default;
9260
- if (slot) {
9261
- slot._c && (slot._d = false);
9262
- normalizeChildren(vnode, slot());
9263
- slot._c && (slot._d = true);
9264
- }
9265
- return;
9266
- } else {
9267
- type = 32;
9268
- const slotFlag = children._;
9269
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9270
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
9271
- else {
9272
- children._ = 2;
9273
- vnode.patchFlag |= 1024;
9517
+ else if (typeof children === "object") {
9518
+ if (shapeFlag & 65) {
9519
+ const slot = children.default;
9520
+ if (slot) {
9521
+ slot._c && (slot._d = false);
9522
+ normalizeChildren(vnode, slot());
9523
+ slot._c && (slot._d = true);
9524
+ }
9525
+ return;
9526
+ } else {
9527
+ type = 32;
9528
+ const slotFlag = children._;
9529
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
9530
+ else if (slotFlag === 3 && currentRenderingInstance) {
9531
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
9532
+ else {
9533
+ children._ = 2;
9534
+ vnode.patchFlag |= 1024;
9535
+ }
9536
+ }
9274
9537
  }
9275
- }
9276
- else if (isFunction(children)) {
9538
+ } else if (isFunction(children)) {
9277
9539
  if (shapeFlag & 65) {
9278
9540
  normalizeChildren(vnode, { default: children });
9279
9541
  return;
@@ -9350,6 +9612,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
9350
9612
  simpleSetCurrentInstance(instance);
9351
9613
  }
9352
9614
  };
9615
+ /**
9616
+ * Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
9617
+ * `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
9618
+ * verbatim instead of re-triggering the `instance.scope` default.
9619
+ * @internal
9620
+ */
9621
+ const restoreCurrentInstance = (prev) => {
9622
+ setCurrentScope(prev[1]);
9623
+ simpleSetCurrentInstance(prev[0]);
9624
+ };
9353
9625
  const internalOptions = [
9354
9626
  "ce",
9355
9627
  "type",
@@ -9381,7 +9653,7 @@ const useInstanceOption = (key, silent = false) => {
9381
9653
  };
9382
9654
  //#endregion
9383
9655
  //#region packages/runtime-core/src/component.ts
9384
- const emptyAppContext = /* @__PURE__ */ createAppContext();
9656
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
9385
9657
  let uid = 0;
9386
9658
  function createComponentInstance(vnode, parent, suspense) {
9387
9659
  const type = vnode.type;
@@ -9501,7 +9773,7 @@ function setupStatefulComponent(instance, isSSR) {
9501
9773
  const setupResult = callWithErrorHandling(setup, instance, 0, [/* @__PURE__ */ shallowReadonly(instance.props), setupContext]);
9502
9774
  const isAsyncSetup = isPromise(setupResult);
9503
9775
  setActiveSub(prevSub);
9504
- setCurrentInstance(...prev);
9776
+ restoreCurrentInstance(prev);
9505
9777
  if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
9506
9778
  if (isAsyncSetup) {
9507
9779
  const unsetCurrentInstance = () => {
@@ -9509,7 +9781,12 @@ function setupStatefulComponent(instance, isSSR) {
9509
9781
  };
9510
9782
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
9511
9783
  if (isSSR) return setupResult.then((resolvedResult) => {
9512
- handleSetupResult(instance, resolvedResult, isSSR);
9784
+ setInSSRSetupState(true);
9785
+ try {
9786
+ handleSetupResult(instance, resolvedResult, isSSR);
9787
+ } finally {
9788
+ setInSSRSetupState(false);
9789
+ }
9513
9790
  }).catch((e) => {
9514
9791
  handleError(e, instance, 0);
9515
9792
  });
@@ -9521,9 +9798,10 @@ function setupStatefulComponent(instance, isSSR) {
9521
9798
  } else finishComponentSetup(instance, isSSR);
9522
9799
  }
9523
9800
  function handleSetupResult(instance, setupResult, isSSR) {
9524
- if (isFunction(setupResult)) if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9525
- else instance.render = setupResult;
9526
- else if (isObject(setupResult)) {
9801
+ if (isFunction(setupResult)) {
9802
+ if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
9803
+ else instance.render = setupResult;
9804
+ } else if (isObject(setupResult)) {
9527
9805
  if (isVNode(setupResult)) warn$1("setup() should not return VNodes directly - return a render function instead.");
9528
9806
  instance.devtoolsRawSetupState = setupResult;
9529
9807
  instance.setupState = proxyRefs(setupResult);
@@ -9575,13 +9853,15 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
9575
9853
  applyOptions(instance);
9576
9854
  } finally {
9577
9855
  setActiveSub(prevSub);
9578
- setCurrentInstance(...prevInstance);
9856
+ restoreCurrentInstance(prevInstance);
9579
9857
  }
9580
9858
  }
9581
- if (!Component.render && instance.render === NOOP && !isSSR) if (!compile$1 && Component.template)
9859
+ if (!Component.render && instance.render === NOOP && !isSSR) {
9860
+ if (!compile$1 && Component.template)
9582
9861
  /* v8 ignore start */
9583
- warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
9584
- else warn$1(`Component is missing template or render function: `, Component);
9862
+ warn$1("Component provided template option but runtime compilation is not supported in this build of Vue.");
9863
+ else warn$1(`Component is missing template or render function: `, Component);
9864
+ }
9585
9865
  }
9586
9866
  const attrsProxyHandlers = {
9587
9867
  get(target, key) {
@@ -9644,14 +9924,13 @@ function getComponentPublicInstance(instance) {
9644
9924
  if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
9645
9925
  get(target, key) {
9646
9926
  if (key in target) return target[key];
9647
- else {
9927
+ else if (!instance.vapor) {
9648
9928
  const publicPropertiesMap = getPublicPropertiesMap();
9649
9929
  if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
9650
9930
  }
9651
9931
  },
9652
9932
  has(target, key) {
9653
- const publicPropertiesMap = getPublicPropertiesMap();
9654
- return key in target || key in publicPropertiesMap;
9933
+ return key in target || !instance.vapor && key in getPublicPropertiesMap();
9655
9934
  }
9656
9935
  }));
9657
9936
  else return instance.proxy;
@@ -9689,11 +9968,12 @@ function h(type, propsOrChildren, children) {
9689
9968
  try {
9690
9969
  setBlockTracking(-1);
9691
9970
  const l = arguments.length;
9692
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
9693
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
9694
- return createVNode(type, propsOrChildren);
9695
- } else return createVNode(type, null, propsOrChildren);
9696
- else {
9971
+ if (l === 2) {
9972
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
9973
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
9974
+ return createVNode(type, propsOrChildren);
9975
+ } else return createVNode(type, null, propsOrChildren);
9976
+ } else {
9697
9977
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
9698
9978
  else if (l === 3 && isVNode(children)) children = [children];
9699
9979
  return createVNode(type, propsOrChildren, children);
@@ -9885,7 +10165,7 @@ function isMemoSame(cached, memo) {
9885
10165
  }
9886
10166
  //#endregion
9887
10167
  //#region packages/runtime-core/src/index.ts
9888
- const version = "3.6.0-rc.1";
10168
+ const version = "3.6.0-rc.10";
9889
10169
  const warn = warn$1;
9890
10170
  /**
9891
10171
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -9908,7 +10188,10 @@ const ssrUtils = {
9908
10188
  getComponentPublicInstance,
9909
10189
  ensureValidVNode,
9910
10190
  pushWarningContext,
9911
- popWarningContext
10191
+ popWarningContext,
10192
+ VaporSlot,
10193
+ rawVaporSlotKey,
10194
+ invokeSlotFallback
9912
10195
  };
9913
10196
  /**
9914
10197
  * @internal only exposed in compat builds
@@ -9930,7 +10213,7 @@ const DeprecationTypes = DeprecationTypes$1;
9930
10213
  let policy = void 0;
9931
10214
  const tt = typeof window !== "undefined" && window.trustedTypes;
9932
10215
  if (tt) try {
9933
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
10216
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
9934
10217
  } catch (e) {
9935
10218
  warn(`Error creating trusted types policy: ${e}`);
9936
10219
  }
@@ -9938,7 +10221,7 @@ const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) =>
9938
10221
  const svgNS = "http://www.w3.org/2000/svg";
9939
10222
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
9940
10223
  const doc = typeof document !== "undefined" ? document : null;
9941
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
10224
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
9942
10225
  const nodeOps = {
9943
10226
  insert: (child, parent, anchor) => {
9944
10227
  parent.insertBefore(child, anchor || null);
@@ -10012,7 +10295,7 @@ const DOMTransitionPropsValidators = {
10012
10295
  leaveActiveClass: String,
10013
10296
  leaveToClass: String
10014
10297
  };
10015
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10298
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
10016
10299
  /**
10017
10300
  * Wrap logic that attaches extra properties to Transition in a function
10018
10301
  * so that it can be annotated as pure
@@ -10027,7 +10310,7 @@ const decorate$1 = (t) => {
10027
10310
  * DOM Transition is a higher-order-component based on the platform-agnostic
10028
10311
  * base Transition component, with DOM-specific logic.
10029
10312
  */
10030
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10313
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
10031
10314
  /**
10032
10315
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
10033
10316
  * with custom HOCs.
@@ -10267,14 +10550,15 @@ const vShow = {
10267
10550
  },
10268
10551
  updated(el, { value, oldValue }, { transition }) {
10269
10552
  if (!value === !oldValue) return;
10270
- if (transition) if (value) {
10271
- transition.beforeEnter(el);
10272
- setDisplay(el, true);
10273
- transition.enter(el);
10274
- } else transition.leave(el, () => {
10275
- setDisplay(el, false);
10276
- });
10277
- else setDisplay(el, value);
10553
+ if (transition) {
10554
+ if (value) {
10555
+ transition.beforeEnter(el);
10556
+ setDisplay(el, true);
10557
+ transition.enter(el);
10558
+ } else transition.leave(el, () => {
10559
+ setDisplay(el, false);
10560
+ });
10561
+ } else setDisplay(el, value);
10278
10562
  },
10279
10563
  beforeUnmount(el, { value }) {
10280
10564
  setDisplay(el, value);
@@ -10305,11 +10589,13 @@ function patchStyle(el, prev, next) {
10305
10589
  const isCssString = isString(next);
10306
10590
  let hasControlledDisplay = false;
10307
10591
  if (next && !isCssString) {
10308
- if (prev) if (!isString(prev)) {
10309
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10310
- } else for (const prevStyle of prev.split(";")) {
10311
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10312
- if (next[key] == null) setStyle(style, key, "");
10592
+ if (prev) {
10593
+ if (!isString(prev)) {
10594
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
10595
+ } else for (const prevStyle of prev.split(";")) {
10596
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
10597
+ if (next[key] == null) setStyle(style, key, "");
10598
+ }
10313
10599
  }
10314
10600
  for (const key in next) {
10315
10601
  if (key === "display") hasControlledDisplay = true;
@@ -10325,7 +10611,11 @@ function patchStyle(el, prev, next) {
10325
10611
  style.cssText = next;
10326
10612
  hasControlledDisplay = displayRE.test(next);
10327
10613
  }
10328
- } else if (prev) el.removeAttribute("style");
10614
+ } else if (prev) {
10615
+ const cssVarText = style[CSS_VAR_TEXT];
10616
+ if (cssVarText) style.cssText = cssVarText;
10617
+ else el.removeAttribute("style");
10618
+ }
10329
10619
  if (vShowOriginalDisplay in el) {
10330
10620
  el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
10331
10621
  if (el[vShowHidden]) style.display = "none";
@@ -10338,8 +10628,10 @@ function setStyle(style, name, rawVal) {
10338
10628
  else {
10339
10629
  const val = rawVal == null ? "" : String(rawVal);
10340
10630
  if (semicolonRE.test(val)) warn(`Unexpected semicolon at the end of '${name}' style value: '${val}'`);
10341
- if (name.startsWith("--")) style.setProperty(name, val);
10342
- else {
10631
+ if (name.startsWith("--")) {
10632
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
10633
+ else style.setProperty(name, val);
10634
+ } else {
10343
10635
  const prefixed = autoPrefix(style, name);
10344
10636
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
10345
10637
  else style[prefixed] = val;
@@ -10376,15 +10668,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
10376
10668
  //#region packages/runtime-dom/src/modules/attrs.ts
10377
10669
  const xlinkNS = "http://www.w3.org/1999/xlink";
10378
10670
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
10379
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10380
- else el.setAttributeNS(xlinkNS, key, value);
10381
- else {
10671
+ if (isSVG && key.startsWith("xlink:")) {
10672
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
10673
+ else el.setAttributeNS(xlinkNS, key, value);
10674
+ } else {
10382
10675
  if (compatCoerceAttr(el, key, value, instance)) return;
10383
10676
  if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
10384
10677
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
10385
10678
  }
10386
10679
  }
10387
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck");
10680
+ const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
10388
10681
  function compatCoerceAttr(el, key, value, instance = null) {
10389
10682
  if (isEnumeratedAttr(key)) {
10390
10683
  const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
@@ -10476,7 +10769,7 @@ function parseEventName(name) {
10476
10769
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
10477
10770
  }
10478
10771
  let cachedNow = 0;
10479
- const p = /* @__PURE__ */ Promise.resolve();
10772
+ const p = /*@__PURE__*/ Promise.resolve();
10480
10773
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
10481
10774
  function createInvoker(initialValue, instance) {
10482
10775
  const invoker = (e) => {
@@ -10544,7 +10837,7 @@ function shouldSetAsPropForVueCE(el, key) {
10544
10837
  //#endregion
10545
10838
  //#region packages/runtime-dom/src/apiCustomElement.ts
10546
10839
  const REMOVAL = {};
10547
- /* @__NO_SIDE_EFFECTS__ */
10840
+ /*@__NO_SIDE_EFFECTS__*/
10548
10841
  function defineCustomElement(options, extraOptions, _createApp) {
10549
10842
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
10550
10843
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -10593,12 +10886,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
10593
10886
  this._parent = parent;
10594
10887
  break;
10595
10888
  }
10596
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
10597
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
10598
- this._pendingResolve = void 0;
10599
- this._resolveDef();
10600
- });
10601
- else this._resolveDef();
10889
+ if (!this._instance) {
10890
+ if (this._resolved) this._mountComponent(this._def);
10891
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
10892
+ this._pendingResolve = void 0;
10893
+ if (this.isConnected) return this._resolveDef();
10894
+ });
10895
+ else this._resolveDef();
10896
+ }
10602
10897
  }
10603
10898
  disconnectedCallback() {
10604
10899
  this._connected = false;
@@ -10632,7 +10927,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10632
10927
  * resolve inner component definition (handle possible async component)
10633
10928
  */
10634
10929
  _resolveDef() {
10635
- if (this._pendingResolve) return;
10930
+ if (this._pendingResolve) return this._pendingResolve;
10636
10931
  for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
10637
10932
  this._ob = new MutationObserver(this._processMutations.bind(this));
10638
10933
  this._ob.observe(this, { attributes: true });
@@ -10662,6 +10957,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10662
10957
  this._def = def;
10663
10958
  resolve(def);
10664
10959
  });
10960
+ return this._pendingResolve;
10665
10961
  } else resolve(this._def);
10666
10962
  }
10667
10963
  _mountComponent(def) {
@@ -10700,14 +10996,17 @@ var VueElementBase = class VueElementBase extends BaseClass {
10700
10996
  const { props } = def;
10701
10997
  const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});
10702
10998
  for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
10703
- for (const key of declaredPropKeys.map(camelize)) Object.defineProperty(this, key, {
10704
- get() {
10705
- return this._getProp(key);
10706
- },
10707
- set(val) {
10708
- this._setProp(key, val, true, !this._patching);
10709
- }
10710
- });
10999
+ for (const key of declaredPropKeys.map(camelize)) {
11000
+ if (key in Object.getPrototypeOf(this)) warn(`Custom element prop "${key}" conflicts with an existing property on the element and will overwrite it.`);
11001
+ Object.defineProperty(this, key, {
11002
+ get() {
11003
+ return this._getProp(key);
11004
+ },
11005
+ set(val) {
11006
+ this._setProp(key, val, true, !this._patching);
11007
+ }
11008
+ });
11009
+ }
10711
11010
  }
10712
11011
  _setAttr(key) {
10713
11012
  if (key.startsWith("data-v-")) return;
@@ -10810,13 +11109,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
10810
11109
  _renderSlots() {
10811
11110
  const outlets = this._getSlots();
10812
11111
  const scopeId = this._instance.type.__scopeId;
10813
- const slotReplacements = /* @__PURE__ */ new Map();
10814
11112
  for (let i = 0; i < outlets.length; i++) {
10815
11113
  const o = outlets[i];
10816
11114
  const slotName = o.getAttribute("name") || "default";
10817
11115
  const content = this._slots[slotName];
10818
11116
  const parent = o.parentNode;
10819
- const replacementNodes = [];
10820
11117
  if (content) for (const n of content) {
10821
11118
  if (scopeId && n.nodeType === 1) {
10822
11119
  const id = scopeId + "-s";
@@ -10826,20 +11123,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
10826
11123
  while (child = walker.nextNode()) child.setAttribute(id, "");
10827
11124
  }
10828
11125
  parent.insertBefore(n, o);
10829
- replacementNodes.push(n);
10830
- }
10831
- else while (o.firstChild) {
10832
- const child = o.firstChild;
10833
- parent.insertBefore(child, o);
10834
- replacementNodes.push(child);
10835
11126
  }
11127
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
10836
11128
  parent.removeChild(o);
10837
- slotReplacements.set(o, {
10838
- nodes: replacementNodes,
10839
- usedFallback: !content
10840
- });
10841
11129
  }
10842
- this._updateSlotNodes(slotReplacements);
10843
11130
  }
10844
11131
  /**
10845
11132
  * @internal
@@ -10878,7 +11165,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
10878
11165
  * @internal
10879
11166
  */
10880
11167
  _hasShadowRoot() {
10881
- return this._def.shadowRoot !== false;
11168
+ return this._root !== this;
10882
11169
  }
10883
11170
  /**
10884
11171
  * @internal
@@ -10923,10 +11210,6 @@ var VueElement = class extends VueElementBase {
10923
11210
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
10924
11211
  this._app = this._instance = null;
10925
11212
  }
10926
- /**
10927
- * Only called when shadowRoot is false
10928
- */
10929
- _updateSlotNodes(replacements) {}
10930
11213
  _createVNode() {
10931
11214
  const baseProps = {};
10932
11215
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -10993,7 +11276,7 @@ const decorate = (t) => {
10993
11276
  };
10994
11277
  const TransitionGroup = /* @__PURE__ */ decorate({
10995
11278
  name: "TransitionGroup",
10996
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
11279
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
10997
11280
  tag: String,
10998
11281
  moveClass: String
10999
11282
  }),
@@ -11125,13 +11408,22 @@ function onCompositionEnd(e) {
11125
11408
  }
11126
11409
  }
11127
11410
  const assignKey = Symbol("_assign");
11411
+ const initialValueKey = Symbol("_initialValue");
11128
11412
  const vModelText = {
11129
11413
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
11414
+ if (el.parentNode) {
11415
+ if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
11416
+ else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
11417
+ }
11130
11418
  el[assignKey] = getModelAssigner(vnode);
11131
11419
  vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
11132
11420
  },
11133
- mounted(el, { value }) {
11134
- el.value = value == null ? "" : value;
11421
+ mounted(el, { value, modifiers: { trim, number } }) {
11422
+ const newValue = value == null ? "" : value;
11423
+ const initialValue = el[initialValueKey];
11424
+ delete el[initialValueKey];
11425
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
11426
+ else el.value = newValue;
11135
11427
  },
11136
11428
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
11137
11429
  el[assignKey] = getModelAssigner(vnode);
@@ -11266,19 +11558,39 @@ const vModelSelectInit = (el, value, number, set) => {
11266
11558
  el._modelValue = value;
11267
11559
  addEventListener(el, "change", () => {
11268
11560
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
11269
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
11270
- el._assigning = true;
11271
- nextTick(() => {
11272
- el._assigning = false;
11273
- });
11561
+ const multiple = el.multiple;
11562
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
11563
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
11564
+ try {
11565
+ (set || el[assignKey])(assignedValue);
11566
+ } finally {
11567
+ nextTick(() => {
11568
+ if (el._pendingValue === pending) el._pendingValue = void 0;
11569
+ });
11570
+ }
11274
11571
  });
11275
11572
  };
11573
+ function isSameSelectValue(value, assignedValue, multiple) {
11574
+ if (!multiple) return looseEqual(value, assignedValue);
11575
+ if (isArray(value)) return looseEqual(value, assignedValue);
11576
+ if (isSet(value)) {
11577
+ if (value.size !== assignedValue.length) return false;
11578
+ for (const item of assignedValue) if (!value.has(item)) return false;
11579
+ return true;
11580
+ }
11581
+ return false;
11582
+ }
11276
11583
  /**
11277
11584
  * @internal
11278
11585
  */
11279
11586
  const vModelSetSelected = (el, value) => {
11280
11587
  el._modelValue = value;
11281
- if (el._assigning) return;
11588
+ const pending = el._pendingValue;
11589
+ el._pendingValue = void 0;
11590
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
11591
+ setSelected(el, value);
11592
+ };
11593
+ function setSelected(el, value) {
11282
11594
  const isMultiple = el.multiple;
11283
11595
  const isArrayValue = isArray(value);
11284
11596
  if (isMultiple && !isArrayValue && !isSet(value)) {
@@ -11288,18 +11600,19 @@ const vModelSetSelected = (el, value) => {
11288
11600
  for (let i = 0, l = el.options.length; i < l; i++) {
11289
11601
  const option = el.options[i];
11290
11602
  const optionValue = getValue(option);
11291
- if (isMultiple) if (isArrayValue) {
11292
- const optionType = typeof optionValue;
11293
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11294
- else option.selected = looseIndexOf(value, optionValue) > -1;
11295
- } else option.selected = value.has(optionValue);
11296
- else if (looseEqual(getValue(option), value)) {
11603
+ if (isMultiple) {
11604
+ if (isArrayValue) {
11605
+ const optionType = typeof optionValue;
11606
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
11607
+ else option.selected = looseIndexOf(value, optionValue) > -1;
11608
+ } else option.selected = value.has(optionValue);
11609
+ } else if (looseEqual(getValue(option), value)) {
11297
11610
  if (el.selectedIndex !== i) el.selectedIndex = i;
11298
11611
  return;
11299
11612
  }
11300
11613
  }
11301
11614
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
11302
- };
11615
+ }
11303
11616
  /**
11304
11617
  * @internal retrieve raw value set via :value bindings
11305
11618
  */
@@ -11613,7 +11926,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
11613
11926
  withModifiers: () => withModifiers,
11614
11927
  withScopeId: () => withScopeId
11615
11928
  });
11616
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
11929
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
11617
11930
  let renderer;
11618
11931
  let enabledHydration = false;
11619
11932
  function ensureRenderer() {
@@ -11994,7 +12307,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
11994
12307
  //#endregion
11995
12308
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
11996
12309
  var _a;
11997
- const decodeMap = new Map([
12310
+ const decodeMap = /* @__PURE__ */ new Map([
11998
12311
  [0, 65533],
11999
12312
  [128, 8364],
12000
12313
  [130, 8218],
@@ -12062,7 +12375,7 @@ function decodeBase64(input) {
12062
12375
  }
12063
12376
  //#endregion
12064
12377
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
12065
- const htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+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");
12378
+ const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
12066
12379
  //#endregion
12067
12380
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
12068
12381
  /**
@@ -12456,7 +12769,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
12456
12769
  }
12457
12770
  return -1;
12458
12771
  }
12459
- const htmlDecoder = /* @__PURE__ */ getDecoder(htmlDecodeTree);
12772
+ const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
12460
12773
  /**
12461
12774
  * Decodes an HTML string.
12462
12775
  *
@@ -12648,13 +12961,14 @@ var Tokenizer = class {
12648
12961
  }
12649
12962
  }
12650
12963
  stateInterpolationOpen(c) {
12651
- if (c === this.delimiterOpen[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12652
- const start = this.index + 1 - this.delimiterOpen.length;
12653
- if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12654
- this.state = 3;
12655
- this.sectionStart = start;
12656
- } else this.delimiterIndex++;
12657
- else if (this.inRCDATA) {
12964
+ if (c === this.delimiterOpen[this.delimiterIndex]) {
12965
+ if (this.delimiterIndex === this.delimiterOpen.length - 1) {
12966
+ const start = this.index + 1 - this.delimiterOpen.length;
12967
+ if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
12968
+ this.state = 3;
12969
+ this.sectionStart = start;
12970
+ } else this.delimiterIndex++;
12971
+ } else if (this.inRCDATA) {
12658
12972
  this.state = 32;
12659
12973
  this.stateInRCDATA(c);
12660
12974
  } else {
@@ -12670,13 +12984,14 @@ var Tokenizer = class {
12670
12984
  }
12671
12985
  }
12672
12986
  stateInterpolationClose(c) {
12673
- if (c === this.delimiterClose[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterClose.length - 1) {
12674
- this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12675
- if (this.inRCDATA) this.state = 32;
12676
- else this.state = 1;
12677
- this.sectionStart = this.index + 1;
12678
- } else this.delimiterIndex++;
12679
- else {
12987
+ if (c === this.delimiterClose[this.delimiterIndex]) {
12988
+ if (this.delimiterIndex === this.delimiterClose.length - 1) {
12989
+ this.cbs.oninterpolation(this.sectionStart, this.index + 1);
12990
+ if (this.inRCDATA) this.state = 32;
12991
+ else this.state = 1;
12992
+ this.sectionStart = this.index + 1;
12993
+ } else this.delimiterIndex++;
12994
+ } else {
12680
12995
  this.state = 3;
12681
12996
  this.stateInterpolation(c);
12682
12997
  }
@@ -12792,9 +13107,10 @@ var Tokenizer = class {
12792
13107
  this.sectionStart = this.index;
12793
13108
  if (this.mode === 0) this.state = 6;
12794
13109
  else if (this.inSFCRoot) this.state = 34;
12795
- else if (!this.inXML) if (c === 116) this.state = 30;
12796
- else this.state = c === 115 ? 29 : 6;
12797
- else this.state = 6;
13110
+ else if (!this.inXML) {
13111
+ if (c === 116) this.state = 30;
13112
+ else this.state = c === 115 ? 29 : 6;
13113
+ } else this.state = 6;
12798
13114
  } else if (c === 47) this.state = 8;
12799
13115
  else {
12800
13116
  this.state = 1;
@@ -13161,9 +13477,7 @@ var Tokenizer = class {
13161
13477
  case 24:
13162
13478
  this.stateInProcessingInstruction(c);
13163
13479
  break;
13164
- case 33:
13165
- this.stateInEntity();
13166
- break;
13480
+ case 33: this.stateInEntity();
13167
13481
  }
13168
13482
  this.index++;
13169
13483
  }
@@ -13196,9 +13510,10 @@ var Tokenizer = class {
13196
13510
  handleTrailingData() {
13197
13511
  const endIndex = this.buffer.length;
13198
13512
  if (this.sectionStart >= endIndex) return;
13199
- if (this.state === 28) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
13200
- else this.cbs.oncomment(this.sectionStart, endIndex);
13201
- 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);
13513
+ if (this.state === 28) {
13514
+ if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
13515
+ else this.cbs.oncomment(this.sectionStart, endIndex);
13516
+ } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
13202
13517
  }
13203
13518
  emitCodePoint(cp, consumed) {
13204
13519
  if (this.baseState !== 1 && this.baseState !== 32) {
@@ -13359,16 +13674,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
13359
13674
  const isRefed = isReferencedIdentifier(node, parent, parentStack);
13360
13675
  if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
13361
13676
  } else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
13362
- else if (isFunctionType(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13363
- else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
13364
- else if (node.type === "BlockStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13365
- else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
13366
- else if (node.type === "SwitchStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13367
- else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13368
- else if (node.type === "CatchClause" && node.param) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13369
- else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
13370
- else if (isForStatement(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13371
- else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13677
+ else if (isFunctionType(node)) {
13678
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13679
+ else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
13680
+ } else if (node.type === "BlockStatement") {
13681
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13682
+ else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
13683
+ } else if (node.type === "SwitchStatement") {
13684
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13685
+ else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13686
+ } else if (node.type === "CatchClause" && node.param) {
13687
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13688
+ else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
13689
+ } else if (isForStatement(node)) {
13690
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
13691
+ else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
13692
+ }
13372
13693
  },
13373
13694
  leave(node, parent) {
13374
13695
  parent && parentStack.pop();
@@ -13460,9 +13781,7 @@ function extractIdentifiers(param, nodes = []) {
13460
13781
  case "RestElement":
13461
13782
  extractIdentifiers(param.argument, nodes);
13462
13783
  break;
13463
- case "AssignmentPattern":
13464
- extractIdentifiers(param.left, nodes);
13465
- break;
13784
+ case "AssignmentPattern": extractIdentifiers(param.left, nodes);
13466
13785
  }
13467
13786
  return nodes;
13468
13787
  }
@@ -13658,7 +13977,7 @@ function isTemplateNode(node) {
13658
13977
  function isSlotOutlet(node) {
13659
13978
  return node.type === 1 && node.tagType === 2;
13660
13979
  }
13661
- const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13980
+ const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
13662
13981
  function getUnnormalizedProps(props, callPath = []) {
13663
13982
  if (props && !isString(props) && props.type === 14) {
13664
13983
  const callee = props.callee;
@@ -13701,9 +14020,10 @@ function injectProp(node, prop, context) {
13701
14020
  propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
13702
14021
  if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
13703
14022
  }
13704
- if (node.type === 13) if (parentCall) parentCall.arguments[0] = propsWithInjection;
13705
- else node.props = propsWithInjection;
13706
- else if (parentCall) parentCall.arguments[0] = propsWithInjection;
14023
+ if (node.type === 13) {
14024
+ if (parentCall) parentCall.arguments[0] = propsWithInjection;
14025
+ else node.props = propsWithInjection;
14026
+ } else if (parentCall) parentCall.arguments[0] = propsWithInjection;
13707
14027
  else node.arguments[2] = propsWithInjection;
13708
14028
  }
13709
14029
  function injectSlotKey(node, prop) {
@@ -13943,26 +14263,28 @@ const tokenizer = new Tokenizer(stack, {
13943
14263
  onattribend(quote, end) {
13944
14264
  if (currentOpenTag && currentProp) {
13945
14265
  setLocEnd(currentProp.loc, end);
13946
- if (quote !== 0) if (currentProp.type === 6) {
13947
- if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
13948
- if (quote === 1 && !currentAttrValue) emitError(13, end);
13949
- currentProp.value = {
13950
- type: 2,
13951
- content: currentAttrValue,
13952
- loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
13953
- };
13954
- if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
13955
- } else {
13956
- let expParseMode = 0;
13957
- if (currentProp.name === "for") expParseMode = 3;
13958
- else if (currentProp.name === "slot") expParseMode = 1;
13959
- else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
13960
- currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
13961
- if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
13962
- let syncIndex = -1;
13963
- 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)) {
13964
- currentProp.name = "model";
13965
- currentProp.modifiers.splice(syncIndex, 1);
14266
+ if (quote !== 0) {
14267
+ if (currentProp.type === 6) {
14268
+ if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
14269
+ if (quote === 1 && !currentAttrValue) emitError(13, end);
14270
+ currentProp.value = {
14271
+ type: 2,
14272
+ content: currentAttrValue,
14273
+ loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
14274
+ };
14275
+ if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
14276
+ } else {
14277
+ let expParseMode = 0;
14278
+ if (currentProp.name === "for") expParseMode = 3;
14279
+ else if (currentProp.name === "slot") expParseMode = 1;
14280
+ else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
14281
+ currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
14282
+ if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
14283
+ let syncIndex = -1;
14284
+ 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)) {
14285
+ currentProp.name = "model";
14286
+ currentProp.modifiers.splice(syncIndex, 1);
14287
+ }
13966
14288
  }
13967
14289
  }
13968
14290
  if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
@@ -14005,10 +14327,7 @@ const tokenizer = new Tokenizer(stack, {
14005
14327
  case 18:
14006
14328
  case 19:
14007
14329
  case 20:
14008
- case 21:
14009
- emitError(9, end);
14010
- break;
14011
- default: break;
14330
+ case 21: emitError(9, end);
14012
14331
  }
14013
14332
  for (let index = 0; index < stack.length; index++) {
14014
14333
  onCloseTag(stack[index], end - 1);
@@ -14154,7 +14473,7 @@ function backTrack(index, c) {
14154
14473
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
14155
14474
  return i;
14156
14475
  }
14157
- const specialTemplateDir = new Set([
14476
+ const specialTemplateDir = /* @__PURE__ */ new Set([
14158
14477
  "if",
14159
14478
  "else",
14160
14479
  "else-if",
@@ -14190,16 +14509,18 @@ function condenseWhitespace(nodes) {
14190
14509
  let removedWhitespace = false;
14191
14510
  for (let i = 0; i < nodes.length; i++) {
14192
14511
  const node = nodes[i];
14193
- if (node.type === 2) if (!inPre) {
14194
- if (isAllWhitespace(node.content)) {
14195
- const prev = nodes[i - 1] && nodes[i - 1].type;
14196
- const next = nodes[i + 1] && nodes[i + 1].type;
14197
- if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
14198
- removedWhitespace = true;
14199
- nodes[i] = null;
14200
- } else node.content = " ";
14201
- } else if (shouldCondense) node.content = condense(node.content);
14202
- } else node.content = node.content.replace(windowsNewlineRE, "\n");
14512
+ if (node.type === 2) {
14513
+ if (!inPre) {
14514
+ if (isAllWhitespace(node.content)) {
14515
+ const prev = nodes[i - 1] && nodes[i - 1].type;
14516
+ const next = nodes[i + 1] && nodes[i + 1].type;
14517
+ if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
14518
+ removedWhitespace = true;
14519
+ nodes[i] = null;
14520
+ } else node.content = " ";
14521
+ } else if (shouldCondense) node.content = condense(node.content);
14522
+ } else node.content = node.content.replace(windowsNewlineRE, "\n");
14523
+ }
14203
14524
  }
14204
14525
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
14205
14526
  }
@@ -14477,7 +14798,7 @@ function getConstantType(node, context) {
14477
14798
  default: return 0;
14478
14799
  }
14479
14800
  }
14480
- const allowHoistedHelperSet = new Set([
14801
+ const allowHoistedHelperSet = /* @__PURE__ */ new Set([
14481
14802
  NORMALIZE_CLASS,
14482
14803
  NORMALIZE_STYLE,
14483
14804
  NORMALIZE_PROPS,
@@ -14521,7 +14842,7 @@ function getSelfName(filename) {
14521
14842
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
14522
14843
  return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
14523
14844
  }
14524
- function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, eventDelegation = true, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
14845
+ function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
14525
14846
  const context = {
14526
14847
  filename,
14527
14848
  selfName: getSelfName(filename),
@@ -14543,7 +14864,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
14543
14864
  bindingMetadata,
14544
14865
  inline,
14545
14866
  isTS,
14546
- eventDelegation,
14547
14867
  onError,
14548
14868
  onWarn,
14549
14869
  compatConfig,
@@ -14655,7 +14975,7 @@ function transform(root, options) {
14655
14975
  traverseNode(root, context);
14656
14976
  if (options.hoistStatic) cacheStatic(root, context);
14657
14977
  if (!options.ssr) createRootCodegen(root, context);
14658
- root.helpers = new Set([...context.helpers.keys()]);
14978
+ root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
14659
14979
  root.components = [...context.components];
14660
14980
  root.directives = [...context.directives];
14661
14981
  root.imports = context.imports;
@@ -14702,8 +15022,10 @@ function traverseNode(node, context) {
14702
15022
  const exitFns = [];
14703
15023
  for (let i = 0; i < nodeTransforms.length; i++) {
14704
15024
  const onExit = nodeTransforms[i](node, context);
14705
- if (onExit) if (isArray(onExit)) exitFns.push(...onExit);
14706
- else exitFns.push(onExit);
15025
+ if (onExit) {
15026
+ if (isArray(onExit)) exitFns.push(...onExit);
15027
+ else exitFns.push(onExit);
15028
+ }
14707
15029
  if (!context.currentNode) return;
14708
15030
  else node = context.currentNode;
14709
15031
  }
@@ -14720,9 +15042,7 @@ function traverseNode(node, context) {
14720
15042
  case 10:
14721
15043
  case 11:
14722
15044
  case 1:
14723
- case 0:
14724
- traverseChildren(node, context);
14725
- break;
15045
+ case 0: traverseChildren(node, context);
14726
15046
  }
14727
15047
  context.currentNode = node;
14728
15048
  let i = exitFns.length;
@@ -14908,16 +15228,18 @@ function genFunctionPreamble(ast, context) {
14908
15228
  const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
14909
15229
  const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
14910
15230
  const helpers = Array.from(ast.helpers);
14911
- if (helpers.length > 0) if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
14912
- else {
14913
- push(`const _Vue = ${VueBinding}\n`, -1);
14914
- if (ast.hoists.length) push(`const { ${[
14915
- CREATE_VNODE,
14916
- CREATE_ELEMENT_VNODE,
14917
- CREATE_COMMENT,
14918
- CREATE_TEXT,
14919
- CREATE_STATIC
14920
- ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
15231
+ if (helpers.length > 0) {
15232
+ if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
15233
+ else {
15234
+ push(`const _Vue = ${VueBinding}\n`, -1);
15235
+ if (ast.hoists.length) push(`const { ${[
15236
+ CREATE_VNODE,
15237
+ CREATE_ELEMENT_VNODE,
15238
+ CREATE_COMMENT,
15239
+ CREATE_TEXT,
15240
+ CREATE_STATIC
15241
+ ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
15242
+ }
14921
15243
  }
14922
15244
  if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
14923
15245
  genHoists(ast.hoists, context);
@@ -14994,10 +15316,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
14994
15316
  if (isString(node)) push(node, -3);
14995
15317
  else if (isArray(node)) genNodeListAsArray(node, context);
14996
15318
  else genNode(node, context);
14997
- if (i < nodes.length - 1) if (multilines) {
14998
- comma && push(",");
14999
- newline();
15000
- } else comma && push(", ");
15319
+ if (i < nodes.length - 1) {
15320
+ if (multilines) {
15321
+ comma && push(",");
15322
+ newline();
15323
+ } else comma && push(", ");
15324
+ }
15001
15325
  }
15002
15326
  }
15003
15327
  function genNode(node, context) {
@@ -15119,8 +15443,10 @@ function genVNodeCall(node, context) {
15119
15443
  const { push, helper, pure } = context;
15120
15444
  const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent } = node;
15121
15445
  let patchFlagString;
15122
- if (patchFlag) if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
15123
- else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
15446
+ if (patchFlag) {
15447
+ if (patchFlag < 0) patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;
15448
+ else patchFlagString = patchFlag + ` /* ${Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `)} */`;
15449
+ }
15124
15450
  if (directives) push(helper(WITH_DIRECTIVES) + `(`);
15125
15451
  if (isBlock) push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
15126
15452
  if (pure) push(PURE_ANNOTATION);
@@ -15316,7 +15642,7 @@ function genReturnStatement({ returns }, context) {
15316
15642
  }
15317
15643
  //#endregion
15318
15644
  //#region packages/compiler-core/src/transforms/transformExpression.ts
15319
- const isLiteralWhitelisted = /* @__PURE__ */ makeMap("true,false,null,this");
15645
+ const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
15320
15646
  const transformExpression = (node, context) => {
15321
15647
  if (node.type === 5) node.content = processExpression(node.content, context);
15322
15648
  else if (node.type === 1) {
@@ -15349,20 +15675,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
15349
15675
  if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
15350
15676
  else if (type === "setup-ref") return `${raw}.value`;
15351
15677
  else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
15352
- else if (type === "setup-let") if (isAssignmentLVal) {
15353
- const { right: rVal, operator } = parent;
15354
- const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
15355
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
15356
- } else if (isUpdateArg) {
15357
- id.start = parent.start;
15358
- id.end = parent.end;
15359
- const { prefix: isPrefix, operator } = parent;
15360
- const prefix = isPrefix ? operator : ``;
15361
- const postfix = isPrefix ? `` : operator;
15362
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
15363
- } else if (isDestructureAssignment) return raw;
15364
- else return wrapWithUnref(raw);
15365
- else if (type === "props") return genPropsAccessExp(raw);
15678
+ else if (type === "setup-let") {
15679
+ if (isAssignmentLVal) {
15680
+ const { right: rVal, operator } = parent;
15681
+ const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
15682
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
15683
+ } else if (isUpdateArg) {
15684
+ id.start = parent.start;
15685
+ id.end = parent.end;
15686
+ const { prefix: isPrefix, operator } = parent;
15687
+ const prefix = isPrefix ? operator : ``;
15688
+ const postfix = isPrefix ? `` : operator;
15689
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
15690
+ } else if (isDestructureAssignment) return raw;
15691
+ else return wrapWithUnref(raw);
15692
+ } else if (type === "props") return genPropsAccessExp(raw);
15366
15693
  else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
15367
15694
  } else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
15368
15695
  else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
@@ -15379,8 +15706,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
15379
15706
  if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
15380
15707
  if (isConst(bindingMetadata[rawExp])) node.constType = 1;
15381
15708
  node.content = rewriteIdentifier(rawExp);
15382
- } else if (!isScopeVarReference) if (isLiteral) node.constType = 3;
15383
- else node.constType = 2;
15709
+ } else if (!isScopeVarReference) {
15710
+ if (isLiteral) node.constType = 3;
15711
+ else node.constType = 2;
15712
+ }
15384
15713
  return node;
15385
15714
  }
15386
15715
  if (!ast) {
@@ -15539,16 +15868,17 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
15539
15868
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
15540
15869
  const { children } = branch;
15541
15870
  const firstChild = children[0];
15542
- if (children.length !== 1 || firstChild.type !== 1) if (children.length === 1 && firstChild.type === 11) {
15543
- const vnodeCall = firstChild.codegenNode;
15544
- injectProp(vnodeCall, keyProperty, context);
15545
- return vnodeCall;
15871
+ if (children.length !== 1 || firstChild.type !== 1) {
15872
+ if (children.length === 1 && firstChild.type === 11) {
15873
+ const vnodeCall = firstChild.codegenNode;
15874
+ injectProp(vnodeCall, keyProperty, context);
15875
+ return vnodeCall;
15876
+ } else {
15877
+ let patchFlag = 64;
15878
+ if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
15879
+ return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
15880
+ }
15546
15881
  } else {
15547
- let patchFlag = 64;
15548
- if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) patchFlag |= 2048;
15549
- return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag, void 0, void 0, true, false, false, branch.loc);
15550
- }
15551
- else {
15552
15882
  const ret = firstChild.codegenNode;
15553
15883
  const vnodeCall = getMemoedVNodeCall(ret);
15554
15884
  if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
@@ -15569,9 +15899,10 @@ function isSameKey(a, b) {
15569
15899
  return true;
15570
15900
  }
15571
15901
  function getParentCondition(node) {
15572
- while (true) if (node.type === 19) if (node.alternate.type === 19) node = node.alternate;
15573
- else return node;
15574
- else if (node.type === 20) node = node.value;
15902
+ while (true) if (node.type === 19) {
15903
+ if (node.alternate.type === 19) node = node.alternate;
15904
+ else return node;
15905
+ } else if (node.type === 20) node = node.value;
15575
15906
  }
15576
15907
  //#endregion
15577
15908
  //#region packages/compiler-core/src/transforms/vFor.ts
@@ -15614,15 +15945,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
15614
15945
  else {
15615
15946
  childBlock = children[0].codegenNode;
15616
15947
  if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
15617
- if (childBlock.isBlock !== !isStableFragment) if (childBlock.isBlock) {
15618
- removeHelper(OPEN_BLOCK);
15619
- removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15620
- } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15621
- childBlock.isBlock = !isStableFragment;
15948
+ const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
15949
+ if (childBlock.isBlock !== shouldUseBlock) {
15950
+ if (childBlock.isBlock) {
15951
+ removeHelper(OPEN_BLOCK);
15952
+ removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15953
+ } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15954
+ }
15955
+ childBlock.isBlock = shouldUseBlock;
15622
15956
  if (childBlock.isBlock) {
15623
15957
  helper(OPEN_BLOCK);
15624
15958
  helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
15625
- } else helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15959
+ } else {
15960
+ helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
15961
+ if (childBlock.needsPatch) {
15962
+ var _childBlock$patchFlag;
15963
+ childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
15964
+ }
15965
+ }
15626
15966
  }
15627
15967
  if (memo) {
15628
15968
  const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
@@ -15828,8 +16168,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
15828
16168
  return createObjectProperty(`default`, fn);
15829
16169
  };
15830
16170
  if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
15831
- else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
15832
- else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
16171
+ else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
16172
+ if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
16173
+ else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
16174
+ }
15833
16175
  }
15834
16176
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
15835
16177
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ` /* ${slotFlagsText[slotFlag]} */`, false))), loc);
@@ -15855,10 +16197,7 @@ function hasForwardedSlots(children) {
15855
16197
  if (hasForwardedSlots(child.branches)) return true;
15856
16198
  break;
15857
16199
  case 10:
15858
- case 11:
15859
- if (hasForwardedSlots(child.children)) return true;
15860
- break;
15861
- default: break;
16200
+ case 11: if (hasForwardedSlots(child.children)) return true;
15862
16201
  }
15863
16202
  }
15864
16203
  return false;
@@ -15880,12 +16219,16 @@ const transformElement = (node, context) => {
15880
16219
  let vnodeDynamicProps;
15881
16220
  let dynamicPropNames;
15882
16221
  let vnodeDirectives;
16222
+ let needsPatch = false;
16223
+ let isBlockRequired = false;
15883
16224
  let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
15884
16225
  if (props.length > 0) {
15885
16226
  const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
15886
16227
  vnodeProps = propsBuildResult.props;
15887
16228
  patchFlag = propsBuildResult.patchFlag;
15888
16229
  dynamicPropNames = propsBuildResult.dynamicPropNames;
16230
+ needsPatch = propsBuildResult.needsPatch;
16231
+ isBlockRequired = propsBuildResult.isBlockRequired;
15889
16232
  const directives = propsBuildResult.directives;
15890
16233
  vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
15891
16234
  if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
@@ -15914,7 +16257,10 @@ const transformElement = (node, context) => {
15914
16257
  } else vnodeChildren = node.children;
15915
16258
  }
15916
16259
  if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
15917
- node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
16260
+ const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
16261
+ needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
16262
+ if (needsPatch) vnodeCall.needsPatch = true;
16263
+ if (isBlockRequired) vnodeCall.isBlockRequired = true;
15918
16264
  };
15919
16265
  };
15920
16266
  function resolveComponentType(node, context, ssr = false) {
@@ -15999,6 +16345,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
15999
16345
  const runtimeDirectives = [];
16000
16346
  const hasChildren = children.length > 0;
16001
16347
  let shouldUseBlock = false;
16348
+ let isBlockRequired = false;
16002
16349
  let patchFlag = 0;
16003
16350
  let hasRef = false;
16004
16351
  let hasClassBinding = false;
@@ -16023,12 +16370,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16023
16370
  const isEventHandler = isOn(name);
16024
16371
  if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
16025
16372
  if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
16373
+ if (name === "ref") hasRef = true;
16026
16374
  if (isEventHandler && value.type === 14) value = value.arguments[0];
16027
16375
  if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
16028
- if (name === "ref") hasRef = true;
16029
- else if (name === "class") hasClassBinding = true;
16376
+ if (name === "class") hasClassBinding = true;
16030
16377
  else if (name === "style") hasStyleBinding = true;
16031
- else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
16378
+ else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
16032
16379
  if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
16033
16380
  } else hasDynamicKeys = true;
16034
16381
  };
@@ -16061,33 +16408,38 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16061
16408
  if (name === "once" || name === "memo") continue;
16062
16409
  if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
16063
16410
  if (isVOn && ssr) continue;
16064
- if (isVBind && isStaticArgOf(arg, "key") || isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")) shouldUseBlock = true;
16411
+ if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
16412
+ if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
16413
+ shouldUseBlock = true;
16414
+ isBlockRequired = true;
16415
+ }
16065
16416
  if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
16066
16417
  if (!arg && (isVBind || isVOn)) {
16067
16418
  hasDynamicKeys = true;
16068
- if (exp) if (isVBind) {
16069
- pushMergeArg();
16070
- if (mergeArgs.some((arg) => {
16071
- if (arg.type === 15) return arg.properties.some(({ key }) => {
16072
- if (key.type !== 4 || !key.isStatic) return true;
16073
- return key.content !== "class" && key.content !== "style" && !isOn(key.content);
16074
- });
16075
- else return true;
16076
- })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
16077
- if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
16078
- mergeArgs.unshift(exp);
16079
- continue;
16080
- }
16081
- pushRefVForMarker();
16082
- pushMergeArg();
16083
- mergeArgs.push(exp);
16084
- } else pushMergeArg({
16085
- type: 14,
16086
- loc,
16087
- callee: context.helper(TO_HANDLERS),
16088
- arguments: isComponent ? [exp] : [exp, `true`]
16089
- });
16090
- else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
16419
+ if (exp) {
16420
+ if (isVBind) {
16421
+ pushMergeArg();
16422
+ if (mergeArgs.some((arg) => {
16423
+ if (arg.type === 15) return arg.properties.some(({ key }) => {
16424
+ if (key.type !== 4 || !key.isStatic) return true;
16425
+ return key.content !== "class" && key.content !== "style" && !isOn(key.content);
16426
+ });
16427
+ else return true;
16428
+ })) checkCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context, loc);
16429
+ if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
16430
+ mergeArgs.unshift(exp);
16431
+ continue;
16432
+ }
16433
+ pushRefVForMarker();
16434
+ pushMergeArg();
16435
+ mergeArgs.push(exp);
16436
+ } else pushMergeArg({
16437
+ type: 14,
16438
+ loc,
16439
+ callee: context.helper(TO_HANDLERS),
16440
+ arguments: isComponent ? [exp] : [exp, `true`]
16441
+ });
16442
+ } else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
16091
16443
  continue;
16092
16444
  }
16093
16445
  if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
@@ -16103,7 +16455,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16103
16455
  }
16104
16456
  } else if (!isBuiltInDirective(name)) {
16105
16457
  runtimeDirectives.push(prop);
16106
- if (hasChildren) shouldUseBlock = true;
16458
+ if (hasChildren) {
16459
+ shouldUseBlock = true;
16460
+ isBlockRequired = true;
16461
+ }
16107
16462
  }
16108
16463
  }
16109
16464
  }
@@ -16120,7 +16475,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16120
16475
  if (dynamicPropNames.length) patchFlag |= 8;
16121
16476
  if (hasHydrationEventBinding) patchFlag |= 32;
16122
16477
  }
16123
- if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) patchFlag |= 512;
16478
+ const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
16479
+ if (!shouldUseBlock && needsPatch) patchFlag |= 512;
16124
16480
  if (!context.inSSR && propsExpression) switch (propsExpression.type) {
16125
16481
  case 15:
16126
16482
  let classKeyIndex = -1;
@@ -16141,16 +16497,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
16141
16497
  } else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
16142
16498
  break;
16143
16499
  case 14: break;
16144
- default:
16145
- propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
16146
- break;
16500
+ default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
16147
16501
  }
16148
16502
  return {
16149
16503
  props: propsExpression,
16150
16504
  directives: runtimeDirectives,
16151
16505
  patchFlag,
16152
16506
  dynamicPropNames,
16153
- shouldUseBlock
16507
+ shouldUseBlock,
16508
+ needsPatch,
16509
+ isBlockRequired
16154
16510
  };
16155
16511
  }
16156
16512
  function dedupeProperties(properties) {
@@ -16251,10 +16607,12 @@ function processSlotOutlet(node, context) {
16251
16607
  for (let i = 0; i < node.props.length; i++) {
16252
16608
  const p = node.props[i];
16253
16609
  if (p.type === 6) {
16254
- if (p.value) if (p.name === "name") slotName = JSON.stringify(p.value.content);
16255
- else {
16256
- p.name = camelize(p.name);
16257
- nonNameProps.push(p);
16610
+ if (p.value) {
16611
+ if (p.name === "name") slotName = JSON.stringify(p.value.content);
16612
+ else {
16613
+ p.name = camelize(p.name);
16614
+ nonNameProps.push(p);
16615
+ }
16258
16616
  }
16259
16617
  } else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
16260
16618
  if (p.exp) slotName = p.exp;
@@ -16283,17 +16641,18 @@ const transformOn$1 = (dir, node, context, augmentor) => {
16283
16641
  const { loc, modifiers, arg } = dir;
16284
16642
  if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
16285
16643
  let eventName;
16286
- if (arg.type === 4) if (arg.isStatic) {
16287
- let rawName = arg.content;
16288
- if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
16289
- if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
16290
- eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
16291
- } else eventName = createCompoundExpression([
16292
- `${context.helperString(TO_HANDLER_KEY)}(`,
16293
- arg,
16294
- `)`
16295
- ]);
16296
- else {
16644
+ if (arg.type === 4) {
16645
+ if (arg.isStatic) {
16646
+ let rawName = arg.content;
16647
+ if (rawName.startsWith("vnode")) context.onError(createCompilerError(52, arg.loc));
16648
+ if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
16649
+ eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
16650
+ } else eventName = createCompoundExpression([
16651
+ `${context.helperString(TO_HANDLER_KEY)}(`,
16652
+ arg,
16653
+ `)`
16654
+ ]);
16655
+ } else {
16297
16656
  eventName = arg;
16298
16657
  eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
16299
16658
  eventName.children.push(`)`);
@@ -16310,13 +16669,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
16310
16669
  exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
16311
16670
  isInlineStatement && context.removeIdentifiers(`$event`);
16312
16671
  shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
16313
- if (shouldCache && isMemberExp) if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
16314
- else exp.children = [
16315
- ...exp.children,
16316
- ` && `,
16317
- ...exp.children,
16318
- `(...args)`
16319
- ];
16672
+ if (shouldCache && isMemberExp) {
16673
+ if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
16674
+ else exp.children = [
16675
+ ...exp.children,
16676
+ ` && `,
16677
+ ...exp.children,
16678
+ `(...args)`
16679
+ ];
16680
+ }
16320
16681
  }
16321
16682
  if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
16322
16683
  `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
@@ -16344,11 +16705,14 @@ const transformBind = (dir, _node, context) => {
16344
16705
  arg.children.unshift(`(`);
16345
16706
  arg.children.push(`) || ""`);
16346
16707
  } else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
16347
- if (modifiers.some((mod) => mod.content === "camel")) if (arg.type === 4) if (arg.isStatic) arg.content = camelize(arg.content);
16348
- else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
16349
- else {
16350
- arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
16351
- arg.children.push(`)`);
16708
+ if (modifiers.some((mod) => mod.content === "camel")) {
16709
+ if (arg.type === 4) {
16710
+ if (arg.isStatic) arg.content = camelize(arg.content);
16711
+ else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
16712
+ } else {
16713
+ arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
16714
+ arg.children.push(`)`);
16715
+ }
16352
16716
  }
16353
16717
  if (!context.inSSR) {
16354
16718
  if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
@@ -16357,9 +16721,10 @@ const transformBind = (dir, _node, context) => {
16357
16721
  return { props: [createObjectProperty(arg, exp)] };
16358
16722
  };
16359
16723
  const injectPrefix = (arg, prefix) => {
16360
- if (arg.type === 4) if (arg.isStatic) arg.content = prefix + arg.content;
16361
- else arg.content = `\`${prefix}\${${arg.content}}\``;
16362
- else {
16724
+ if (arg.type === 4) {
16725
+ if (arg.isStatic) arg.content = prefix + arg.content;
16726
+ else arg.content = `\`${prefix}\${${arg.content}}\``;
16727
+ } else {
16363
16728
  arg.children.unshift(`'${prefix}' + (`);
16364
16729
  arg.children.push(`)`);
16365
16730
  }
@@ -16454,20 +16819,21 @@ const transformModel$1 = (dir, node, context) => {
16454
16819
  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
16455
16820
  let assignmentExp;
16456
16821
  const eventArg = context.isTS ? `($event: any)` : `$event`;
16457
- if (maybeRef) if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
16458
- `${eventArg} => ((`,
16459
- createSimpleExpression(rawExp, false, exp.loc),
16460
- `).value = $event)`
16461
- ]);
16462
- else {
16463
- const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
16464
- assignmentExp = createCompoundExpression([
16465
- `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
16822
+ if (maybeRef) {
16823
+ if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
16824
+ `${eventArg} => ((`,
16466
16825
  createSimpleExpression(rawExp, false, exp.loc),
16467
- `).value = $event : ${altAssignment})`
16826
+ `).value = $event)`
16468
16827
  ]);
16469
- }
16470
- else assignmentExp = createCompoundExpression([
16828
+ else {
16829
+ const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
16830
+ assignmentExp = createCompoundExpression([
16831
+ `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
16832
+ createSimpleExpression(rawExp, false, exp.loc),
16833
+ `).value = $event : ${altAssignment})`
16834
+ ]);
16835
+ }
16836
+ } else assignmentExp = createCompoundExpression([
16471
16837
  `${eventArg} => ((`,
16472
16838
  exp,
16473
16839
  `) = $event)`
@@ -16526,11 +16892,12 @@ function parseFilter(node, context) {
16526
16892
  if (c === 96 && prev !== 92) inTemplateString = false;
16527
16893
  } else if (inRegex) {
16528
16894
  if (c === 47 && prev !== 92) inRegex = false;
16529
- } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) if (expression === void 0) {
16530
- lastFilterIndex = i + 1;
16531
- expression = exp.slice(0, i).trim();
16532
- } else pushFilter();
16533
- else {
16895
+ } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
16896
+ if (expression === void 0) {
16897
+ lastFilterIndex = i + 1;
16898
+ expression = exp.slice(0, i).trim();
16899
+ } else pushFilter();
16900
+ } else {
16534
16901
  switch (c) {
16535
16902
  case 34:
16536
16903
  inDouble = true;
@@ -16556,9 +16923,7 @@ function parseFilter(node, context) {
16556
16923
  case 123:
16557
16924
  curly++;
16558
16925
  break;
16559
- case 125:
16560
- curly--;
16561
- break;
16926
+ case 125: curly--;
16562
16927
  }
16563
16928
  if (c === 47) {
16564
16929
  let j = i - 1;
@@ -16823,9 +17188,7 @@ const transformModel = (dir, node, context) => {
16823
17188
  isInvalidType = true;
16824
17189
  context.onError(createDOMCompilerError(60, dir.loc));
16825
17190
  break;
16826
- default:
16827
- checkDuplicatedValue();
16828
- break;
17191
+ default: checkDuplicatedValue();
16829
17192
  }
16830
17193
  } else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
16831
17194
  else checkDuplicatedValue();
@@ -16838,27 +17201,37 @@ const transformModel = (dir, node, context) => {
16838
17201
  };
16839
17202
  //#endregion
16840
17203
  //#region packages/compiler-dom/src/transforms/vOn.ts
16841
- const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
16842
- const isNonKeyModifier = /* @__PURE__ */ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
16843
- const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
16844
- const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
17204
+ const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
17205
+ const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
17206
+ const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
17207
+ const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
16845
17208
  const resolveModifiers = (key, modifiers, context, loc) => {
16846
17209
  const keyModifiers = [];
16847
17210
  const nonKeyModifiers = [];
16848
17211
  const eventOptionModifiers = [];
16849
17212
  for (let i = 0; i < modifiers.length; i++) {
16850
17213
  const modifier = modifiers[i].content;
17214
+ if (modifier === "delegate") {
17215
+ if (context) {
17216
+ const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
17217
+ error.loc = modifiers[i].loc;
17218
+ context.onWarn(error);
17219
+ }
17220
+ continue;
17221
+ }
16851
17222
  if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
16852
17223
  else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
16853
17224
  else {
16854
17225
  const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
16855
- if (maybeKeyModifier(modifier)) if (keyString) if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
16856
- else nonKeyModifiers.push(modifier);
16857
- else {
16858
- keyModifiers.push(modifier);
16859
- nonKeyModifiers.push(modifier);
16860
- }
16861
- else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
17226
+ if (maybeKeyModifier(modifier)) {
17227
+ if (keyString) {
17228
+ if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
17229
+ else nonKeyModifiers.push(modifier);
17230
+ } else {
17231
+ keyModifiers.push(modifier);
17232
+ nonKeyModifiers.push(modifier);
17233
+ }
17234
+ } else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
16862
17235
  else keyModifiers.push(modifier);
16863
17236
  }
16864
17237
  }
@@ -17028,7 +17401,7 @@ const dataAriaRE = /^(?:data|aria)-/;
17028
17401
  const isStringifiableAttr = (name, ns) => {
17029
17402
  return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
17030
17403
  };
17031
- const isNonStringifiable = /* @__PURE__ */ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
17404
+ const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
17032
17405
  /**
17033
17406
  * for a cached node, analyze it and return:
17034
17407
  * - false: bailed (contains non-stringifiable props or runtime constant)
@@ -17099,10 +17472,11 @@ function stringifyElement(node, context) {
17099
17472
  res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
17100
17473
  continue;
17101
17474
  }
17102
- if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
17475
+ if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
17103
17476
  let evaluated = evaluateConstant(exp);
17104
17477
  if (evaluated != null) {
17105
17478
  const arg = p.arg && p.arg.content;
17479
+ if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
17106
17480
  if (arg === "class") evaluated = normalizeClass(evaluated);
17107
17481
  else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
17108
17482
  res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
@@ -17164,7 +17538,7 @@ function isValidHTMLNesting(parent, child) {
17164
17538
  }
17165
17539
  return true;
17166
17540
  }
17167
- const headings = new Set([
17541
+ const headings = /* @__PURE__ */ new Set([
17168
17542
  "h1",
17169
17543
  "h2",
17170
17544
  "h3",
@@ -17176,7 +17550,7 @@ const emptySet = /* @__PURE__ */ new Set([]);
17176
17550
  /**
17177
17551
  * maps element to set of elements that can be it's children, no other */
17178
17552
  const onlyValidChildren = {
17179
- head: new Set([
17553
+ head: /* @__PURE__ */ new Set([
17180
17554
  "base",
17181
17555
  "basefront",
17182
17556
  "bgsound",
@@ -17189,24 +17563,24 @@ const onlyValidChildren = {
17189
17563
  "script",
17190
17564
  "template"
17191
17565
  ]),
17192
- optgroup: new Set(["option"]),
17193
- select: new Set([
17566
+ optgroup: /* @__PURE__ */ new Set(["option"]),
17567
+ select: /* @__PURE__ */ new Set([
17194
17568
  "optgroup",
17195
17569
  "option",
17196
17570
  "hr"
17197
17571
  ]),
17198
- table: new Set([
17572
+ table: /* @__PURE__ */ new Set([
17199
17573
  "caption",
17200
17574
  "colgroup",
17201
17575
  "tbody",
17202
17576
  "tfoot",
17203
17577
  "thead"
17204
17578
  ]),
17205
- tr: new Set(["td", "th"]),
17206
- colgroup: new Set(["col"]),
17207
- tbody: new Set(["tr"]),
17208
- thead: new Set(["tr"]),
17209
- tfoot: new Set(["tr"]),
17579
+ tr: /* @__PURE__ */ new Set(["td", "th"]),
17580
+ colgroup: /* @__PURE__ */ new Set(["col"]),
17581
+ tbody: /* @__PURE__ */ new Set(["tr"]),
17582
+ thead: /* @__PURE__ */ new Set(["tr"]),
17583
+ tfoot: /* @__PURE__ */ new Set(["tr"]),
17210
17584
  script: emptySet,
17211
17585
  iframe: emptySet,
17212
17586
  option: emptySet,
@@ -17217,30 +17591,30 @@ const onlyValidChildren = {
17217
17591
  /** maps elements to set of elements which can be it's parent, no other */
17218
17592
  const onlyValidParents = {
17219
17593
  html: emptySet,
17220
- body: new Set(["html"]),
17221
- head: new Set(["html"]),
17222
- td: new Set(["tr"]),
17223
- colgroup: new Set(["table"]),
17224
- caption: new Set(["table"]),
17225
- tbody: new Set(["table"]),
17226
- tfoot: new Set(["table"]),
17227
- col: new Set(["colgroup"]),
17228
- th: new Set(["tr"]),
17229
- thead: new Set(["table"]),
17230
- tr: new Set([
17594
+ body: /* @__PURE__ */ new Set(["html"]),
17595
+ head: /* @__PURE__ */ new Set(["html"]),
17596
+ td: /* @__PURE__ */ new Set(["tr"]),
17597
+ colgroup: /* @__PURE__ */ new Set(["table"]),
17598
+ caption: /* @__PURE__ */ new Set(["table"]),
17599
+ tbody: /* @__PURE__ */ new Set(["table"]),
17600
+ tfoot: /* @__PURE__ */ new Set(["table"]),
17601
+ col: /* @__PURE__ */ new Set(["colgroup"]),
17602
+ th: /* @__PURE__ */ new Set(["tr"]),
17603
+ thead: /* @__PURE__ */ new Set(["table"]),
17604
+ tr: /* @__PURE__ */ new Set([
17231
17605
  "tbody",
17232
17606
  "thead",
17233
17607
  "tfoot"
17234
17608
  ]),
17235
- dd: new Set(["dl", "div"]),
17236
- dt: new Set(["dl", "div"]),
17237
- figcaption: new Set(["figure"]),
17238
- summary: new Set(["details"]),
17239
- area: new Set(["map"])
17609
+ dd: /* @__PURE__ */ new Set(["dl", "div"]),
17610
+ dt: /* @__PURE__ */ new Set(["dl", "div"]),
17611
+ figcaption: /* @__PURE__ */ new Set(["figure"]),
17612
+ summary: /* @__PURE__ */ new Set(["details"]),
17613
+ area: /* @__PURE__ */ new Set(["map"])
17240
17614
  };
17241
17615
  /** maps element to set of elements that can not be it's children, others can */
17242
17616
  const knownInvalidChildren = {
17243
- p: new Set([
17617
+ p: /* @__PURE__ */ new Set([
17244
17618
  "address",
17245
17619
  "article",
17246
17620
  "aside",
@@ -17275,7 +17649,7 @@ const knownInvalidChildren = {
17275
17649
  "table",
17276
17650
  "ul"
17277
17651
  ]),
17278
- svg: new Set([
17652
+ svg: /* @__PURE__ */ new Set([
17279
17653
  "b",
17280
17654
  "blockquote",
17281
17655
  "br",
@@ -17316,12 +17690,12 @@ const knownInvalidChildren = {
17316
17690
  };
17317
17691
  /** maps element to set of elements that can not be it's parent, others can */
17318
17692
  const knownInvalidParents = {
17319
- a: new Set(["a"]),
17320
- button: new Set(["button"]),
17321
- dd: new Set(["dd", "dt"]),
17322
- dt: new Set(["dd", "dt"]),
17323
- form: new Set(["form"]),
17324
- li: new Set(["li"]),
17693
+ a: /* @__PURE__ */ new Set(["a"]),
17694
+ button: /* @__PURE__ */ new Set(["button"]),
17695
+ dd: /* @__PURE__ */ new Set(["dd", "dt"]),
17696
+ dt: /* @__PURE__ */ new Set(["dd", "dt"]),
17697
+ form: /* @__PURE__ */ new Set(["form"]),
17698
+ li: /* @__PURE__ */ new Set(["li"]),
17325
17699
  h1: headings,
17326
17700
  h2: headings,
17327
17701
  h3: headings,
@@ -17364,10 +17738,12 @@ function compile(src, options = {}) {
17364
17738
  //#region packages/vue-compat/src/index.ts
17365
17739
  const compileCache = Object.create(null);
17366
17740
  function compileToFunction(template, options) {
17367
- if (!isString(template)) if (template.nodeType) template = template.innerHTML;
17368
- else {
17369
- warn(`invalid template option: `, template);
17370
- return NOOP;
17741
+ if (!isString(template)) {
17742
+ if (template.nodeType) template = template.innerHTML;
17743
+ else {
17744
+ warn(`invalid template option: `, template);
17745
+ return NOOP;
17746
+ }
17371
17747
  }
17372
17748
  const key = genCacheKey(template, options);
17373
17749
  const cached = compileCache[key];