@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.
@@ -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,8 +70,8 @@ const toRawType = (value) => {
70
70
  };
71
71
  const isPlainObject = (val) => toTypeString(val) === "[object Object]";
72
72
  const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
73
- const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
74
- const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
73
+ const isReservedProp = /*@__PURE__*/ makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");
74
+ const isBuiltInDirective = /*@__PURE__*/ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
75
75
  const cacheStringFunction = (fn) => {
76
76
  const cache = Object.create(null);
77
77
  return ((str) => {
@@ -152,7 +152,7 @@ function genCacheKey(source, options) {
152
152
  function canSetValueDirectly(tagName) {
153
153
  return tagName !== "PROGRESS" && !tagName.includes("-");
154
154
  }
155
- const isGloballyAllowed = /* @__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");
155
+ const isGloballyAllowed = /*@__PURE__*/ makeMap("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
156
156
  //#endregion
157
157
  //#region packages/shared/src/normalizeProp.ts
158
158
  function normalizeStyle(value) {
@@ -168,10 +168,10 @@ function normalizeStyle(value) {
168
168
  }
169
169
  const listDelimiterRE = /;(?![^(]*\))/g;
170
170
  const propertyDelimiterRE = /:([^]+)/;
171
- const styleCommentRE = /\/\*[^]*?\*\//g;
171
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
172
172
  function parseStringStyle(cssText) {
173
173
  const ret = {};
174
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
174
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
175
175
  if (item) {
176
176
  const tmp = item.split(propertyDelimiterRE);
177
177
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -221,22 +221,22 @@ const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,tr
221
221
  * Compiler only.
222
222
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
223
223
  */
224
- const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
224
+ const isHTMLTag = /*@__PURE__*/ makeMap(HTML_TAGS);
225
225
  /**
226
226
  * Compiler only.
227
227
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
228
228
  */
229
- const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
229
+ const isSVGTag = /*@__PURE__*/ makeMap(SVG_TAGS);
230
230
  /**
231
231
  * Compiler only.
232
232
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
233
233
  */
234
- const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
234
+ const isMathMLTag = /*@__PURE__*/ makeMap(MATH_TAGS);
235
235
  /**
236
236
  * Compiler only.
237
237
  * Do NOT use in runtime code paths unless behind `__DEV__` flag.
238
238
  */
239
- const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
239
+ const isVoidTag = /*@__PURE__*/ makeMap(VOID_TAGS);
240
240
  //#endregion
241
241
  //#region packages/shared/src/domAttrConfig.ts
242
242
  /**
@@ -251,11 +251,11 @@ const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
251
251
  * - readonly -> readOnly
252
252
  */
253
253
  const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
254
- const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
254
+ const isSpecialBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs);
255
255
  /**
256
256
  * The full list is needed during SSR to produce the correct initial markup.
257
257
  */
258
- const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
258
+ const isBooleanAttr = /*@__PURE__*/ makeMap(specialBooleanAttrs + ",async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");
259
259
  /**
260
260
  * Boolean attributes should be included if the value is truthy or ''.
261
261
  * e.g. `<select multiple>` compiles to `{ multiple: '' }`
@@ -269,15 +269,15 @@ function includeBooleanAttr(value) {
269
269
  * Don't also forget to allow `data-*` and `aria-*`!
270
270
  * Generated from https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
271
271
  */
272
- const isKnownHtmlAttr = /* @__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");
272
+ const isKnownHtmlAttr = /*@__PURE__*/ makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap");
273
273
  /**
274
274
  * Generated from https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute
275
275
  */
276
- const isKnownSvgAttr = /* @__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");
276
+ const isKnownSvgAttr = /*@__PURE__*/ makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");
277
277
  /**
278
278
  * Generated from https://developer.mozilla.org/en-US/docs/Web/MathML/Attribute
279
279
  */
280
- const isKnownMathMLAttr = /* @__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");
280
+ const isKnownMathMLAttr = /*@__PURE__*/ makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");
281
281
  function shouldSetAsAttr(tagName, key) {
282
282
  if (key === "spellcheck" || key === "draggable" || key === "translate" || key === "autocorrect") return true;
283
283
  if (key === "form") return true;
@@ -325,13 +325,54 @@ function escapeHtml(string) {
325
325
  }
326
326
  //#endregion
327
327
  //#region packages/shared/src/looseEqual.ts
328
- function looseCompareArrays(a, b) {
328
+ function looseCompareArrays(a, b, seen) {
329
329
  if (a.length !== b.length) return false;
330
330
  let equal = true;
331
- for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i]);
331
+ for (let i = 0; equal && i < a.length; i++) equal = looseEqual(a[i], b[i], seen);
332
332
  return equal;
333
333
  }
334
- function looseEqual(a, b) {
334
+ function looseCompareCollections(a, b, seen) {
335
+ if (a.size !== b.size) return false;
336
+ const candidates = Array.from(b);
337
+ const matched = new Uint8Array(candidates.length);
338
+ for (const item of a) {
339
+ let index = -1;
340
+ for (let i = 0; i < candidates.length; i++) if (!matched[i] && looseEqual(item, candidates[i], seen)) {
341
+ index = i;
342
+ break;
343
+ }
344
+ if (index < 0) return false;
345
+ matched[index] = 1;
346
+ }
347
+ return true;
348
+ }
349
+ function looseCompareObjects(a, b, seen) {
350
+ let aValidType = isMap(a);
351
+ let bValidType = isMap(b);
352
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
353
+ aValidType = isSet(a);
354
+ bValidType = isSet(b);
355
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
356
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
357
+ for (const key in a) {
358
+ const aHasKey = a.hasOwnProperty(key);
359
+ const bHasKey = b.hasOwnProperty(key);
360
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) return false;
361
+ }
362
+ return String(a) === String(b);
363
+ }
364
+ function looseCompareNested(a, b, seen, compare) {
365
+ if (!seen) seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
366
+ const [seenA, seenB] = seen;
367
+ if (seenA.has(a) || seenB.has(b)) return seenA.get(a) === b && seenB.get(b) === a;
368
+ seenA.set(a, b);
369
+ seenB.set(b, a);
370
+ const equal = compare(a, b, seen);
371
+ seenA.delete(a);
372
+ seenB.delete(b);
373
+ return equal;
374
+ }
375
+ function looseEqual(a, b, seen) {
335
376
  if (a === b) return true;
336
377
  let aValidType = isDate(a);
337
378
  let bValidType = isDate(b);
@@ -341,17 +382,12 @@ function looseEqual(a, b) {
341
382
  if (aValidType || bValidType) return a === b;
342
383
  aValidType = isArray(a);
343
384
  bValidType = isArray(b);
344
- if (aValidType || bValidType) return aValidType && bValidType ? looseCompareArrays(a, b) : false;
385
+ if (aValidType || bValidType) return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
345
386
  aValidType = isObject(a);
346
387
  bValidType = isObject(b);
347
388
  if (aValidType || bValidType) {
348
389
  if (!aValidType || !bValidType) return false;
349
- if (Object.keys(a).length !== Object.keys(b).length) return false;
350
- for (const key in a) {
351
- const aHasKey = a.hasOwnProperty(key);
352
- const bHasKey = b.hasOwnProperty(key);
353
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) return false;
354
- }
390
+ return looseCompareNested(a, b, seen, looseCompareObjects);
355
391
  }
356
392
  return String(a) === String(b);
357
393
  }
@@ -429,6 +465,8 @@ function getSequence(arr) {
429
465
  }
430
466
  return result;
431
467
  }
468
+ //#endregion
469
+ //#region packages/reactivity/src/system.ts
432
470
  const notifyBuffer = [];
433
471
  let batchDepth = 0;
434
472
  let activeSub = void 0;
@@ -566,13 +604,23 @@ function endTracking(sub, prevSub) {
566
604
  sub.flags &= -5;
567
605
  }
568
606
  function flush() {
607
+ let hasError = false;
608
+ let error;
569
609
  while (notifyIndex < notifyBufferLength) {
570
610
  const effect = notifyBuffer[notifyIndex];
571
611
  notifyBuffer[notifyIndex++] = void 0;
572
- effect.notify();
612
+ try {
613
+ effect.notify();
614
+ } catch (err) {
615
+ if (!hasError) {
616
+ hasError = true;
617
+ error = err;
618
+ }
619
+ }
573
620
  }
574
621
  notifyIndex = 0;
575
622
  notifyBufferLength = 0;
623
+ if (hasError) throw error;
576
624
  }
577
625
  function checkDirty(link, sub) {
578
626
  let stack;
@@ -656,7 +704,7 @@ var Dep = class {
656
704
  }
657
705
  set subs(value) {
658
706
  this._subs = value;
659
- if (value === void 0) this.map.delete(this.key);
707
+ if (value === void 0 && this.map) this.map.delete(this.key);
660
708
  }
661
709
  };
662
710
  const targetMap = /* @__PURE__ */ new WeakMap();
@@ -725,9 +773,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
725
773
  if (isMap(target)) run(depsMap.get(MAP_KEY_ITERATE_KEY));
726
774
  }
727
775
  break;
728
- case "set":
729
- if (isMap(target)) run(depsMap.get(ITERATE_KEY));
730
- break;
776
+ case "set": if (isMap(target)) run(depsMap.get(ITERATE_KEY));
731
777
  }
732
778
  }
733
779
  }
@@ -742,13 +788,17 @@ function getDepFromReactive(object, key) {
742
788
  /**
743
789
  * Track array iteration and return:
744
790
  * - if input is reactive: a cloned raw array with reactive values
745
- * - if input is non-reactive or shallowReactive: the original raw array
791
+ * - if input is readonly: a cloned raw array with readonly values, preserving
792
+ * reactivity
793
+ * - if input is raw or shallow: the original raw array
746
794
  */
747
795
  function reactiveReadArray(array) {
748
796
  const raw = /* @__PURE__ */ toRaw(array);
749
797
  if (raw === array) return raw;
750
798
  track(raw, "iterate", ARRAY_ITERATE_KEY);
751
- return /* @__PURE__ */ isShallow(array) ? raw : raw.map(toReactive);
799
+ if (/* @__PURE__ */ isShallow(array)) return raw;
800
+ if (!/* @__PURE__ */ isReadonly(array)) return raw.map(toReactive);
801
+ return /* @__PURE__ */ isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
752
802
  }
753
803
  /**
754
804
  * Track array iteration and return raw array
@@ -924,8 +974,8 @@ function noTracking(self, method, args = []) {
924
974
  }
925
975
  //#endregion
926
976
  //#region packages/reactivity/src/baseHandlers.ts
927
- const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
928
- const builtInSymbols = new Set(/* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
977
+ const isNonTrackableKeys = /*@__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);
978
+ const builtInSymbols = new Set(/*@__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol));
929
979
  function hasOwnProperty(key) {
930
980
  if (!isSymbol(key)) key = String(key);
931
981
  const obj = /* @__PURE__ */ toRaw(this);
@@ -980,10 +1030,12 @@ var MutableReactiveHandler = class extends BaseReactiveHandler {
980
1030
  oldValue = /* @__PURE__ */ toRaw(oldValue);
981
1031
  value = /* @__PURE__ */ toRaw(value);
982
1032
  }
983
- if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) if (isOldValueReadonly) return true;
984
- else {
985
- oldValue.value = value;
986
- return true;
1033
+ if (!isArrayWithIntegerKey && /* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {
1034
+ if (isOldValueReadonly) return true;
1035
+ else {
1036
+ oldValue.value = value;
1037
+ return true;
1038
+ }
987
1039
  }
988
1040
  }
989
1041
  const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);
@@ -1022,10 +1074,10 @@ var ReadonlyReactiveHandler = class extends BaseReactiveHandler {
1022
1074
  return true;
1023
1075
  }
1024
1076
  };
1025
- const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();
1026
- const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();
1027
- const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);
1028
- const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);
1077
+ const mutableHandlers = /*@__PURE__*/ new MutableReactiveHandler();
1078
+ const readonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler();
1079
+ const shallowReactiveHandlers = /*@__PURE__*/ new MutableReactiveHandler(true);
1080
+ const shallowReadonlyHandlers = /*@__PURE__*/ new ReadonlyReactiveHandler(true);
1029
1081
  //#endregion
1030
1082
  //#region packages/reactivity/src/collectionHandlers.ts
1031
1083
  const toShallow = (value) => value;
@@ -1172,10 +1224,10 @@ function createInstrumentationGetter(isReadonly, shallow) {
1172
1224
  return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
1173
1225
  };
1174
1226
  }
1175
- const mutableCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, false) };
1176
- const shallowCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(false, true) };
1177
- const readonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, false) };
1178
- const shallowReadonlyCollectionHandlers = { get: /* @__PURE__ */ createInstrumentationGetter(true, true) };
1227
+ const mutableCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, false) };
1228
+ const shallowCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(false, true) };
1229
+ const readonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, false) };
1230
+ const shallowReadonlyCollectionHandlers = { get: /*@__PURE__*/ createInstrumentationGetter(true, true) };
1179
1231
  //#endregion
1180
1232
  //#region packages/reactivity/src/reactive.ts
1181
1233
  const reactiveMap = /* @__PURE__ */ new WeakMap();
@@ -1193,7 +1245,7 @@ function targetTypeMap(rawType) {
1193
1245
  default: return 0;
1194
1246
  }
1195
1247
  }
1196
- /* @__NO_SIDE_EFFECTS__ */
1248
+ /*@__NO_SIDE_EFFECTS__*/
1197
1249
  function reactive(target) {
1198
1250
  if (/* @__PURE__ */ isReadonly(target)) return target;
1199
1251
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
@@ -1228,7 +1280,7 @@ function reactive(target) {
1228
1280
  * @param target - The source object.
1229
1281
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreactive}
1230
1282
  */
1231
- /* @__NO_SIDE_EFFECTS__ */
1283
+ /*@__NO_SIDE_EFFECTS__*/
1232
1284
  function shallowReactive(target) {
1233
1285
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
1234
1286
  }
@@ -1261,7 +1313,7 @@ function shallowReactive(target) {
1261
1313
  * @param target - The source object.
1262
1314
  * @see {@link https://vuejs.org/api/reactivity-core.html#readonly}
1263
1315
  */
1264
- /* @__NO_SIDE_EFFECTS__ */
1316
+ /*@__NO_SIDE_EFFECTS__*/
1265
1317
  function readonly(target) {
1266
1318
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
1267
1319
  }
@@ -1295,7 +1347,7 @@ function readonly(target) {
1295
1347
  * @param target - The source object.
1296
1348
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#shallowreadonly}
1297
1349
  */
1298
- /* @__NO_SIDE_EFFECTS__ */
1350
+ /*@__NO_SIDE_EFFECTS__*/
1299
1351
  function shallowReadonly(target) {
1300
1352
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
1301
1353
  }
@@ -1329,7 +1381,7 @@ function createReactiveObject(target, isReadonly, baseHandlers, collectionHandle
1329
1381
  * @param value - The value to check.
1330
1382
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreactive}
1331
1383
  */
1332
- /* @__NO_SIDE_EFFECTS__ */
1384
+ /*@__NO_SIDE_EFFECTS__*/
1333
1385
  function isReactive(value) {
1334
1386
  if (/* @__PURE__ */ isReadonly(value)) return /* @__PURE__ */ isReactive(value["__v_raw"]);
1335
1387
  return !!(value && value["__v_isReactive"]);
@@ -1345,11 +1397,11 @@ function isReactive(value) {
1345
1397
  * @param value - The value to check.
1346
1398
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isreadonly}
1347
1399
  */
1348
- /* @__NO_SIDE_EFFECTS__ */
1400
+ /*@__NO_SIDE_EFFECTS__*/
1349
1401
  function isReadonly(value) {
1350
1402
  return !!(value && value["__v_isReadonly"]);
1351
1403
  }
1352
- /* @__NO_SIDE_EFFECTS__ */
1404
+ /*@__NO_SIDE_EFFECTS__*/
1353
1405
  function isShallow(value) {
1354
1406
  return !!(value && value["__v_isShallow"]);
1355
1407
  }
@@ -1360,7 +1412,7 @@ function isShallow(value) {
1360
1412
  * @param value - The value to check.
1361
1413
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#isproxy}
1362
1414
  */
1363
- /* @__NO_SIDE_EFFECTS__ */
1415
+ /*@__NO_SIDE_EFFECTS__*/
1364
1416
  function isProxy(value) {
1365
1417
  return value ? !!value["__v_raw"] : false;
1366
1418
  }
@@ -1387,7 +1439,7 @@ function isProxy(value) {
1387
1439
  * @param observed - The object for which the "raw" value is requested.
1388
1440
  * @see {@link https://vuejs.org/api/reactivity-advanced.html#toraw}
1389
1441
  */
1390
- /* @__NO_SIDE_EFFECTS__ */
1442
+ /*@__NO_SIDE_EFFECTS__*/
1391
1443
  function toRaw(observed) {
1392
1444
  const raw = observed && observed["__v_raw"];
1393
1445
  return raw ? /* @__PURE__ */ toRaw(raw) : observed;
@@ -1436,15 +1488,15 @@ const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value)
1436
1488
  const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;
1437
1489
  //#endregion
1438
1490
  //#region packages/reactivity/src/ref.ts
1439
- /* @__NO_SIDE_EFFECTS__ */
1491
+ /*@__NO_SIDE_EFFECTS__*/
1440
1492
  function isRef(r) {
1441
1493
  return r ? r["__v_isRef"] === true : false;
1442
1494
  }
1443
- /* @__NO_SIDE_EFFECTS__ */
1495
+ /*@__NO_SIDE_EFFECTS__*/
1444
1496
  function ref(value) {
1445
1497
  return createRef(value, toReactive);
1446
1498
  }
1447
- /* @__NO_SIDE_EFFECTS__ */
1499
+ /*@__NO_SIDE_EFFECTS__*/
1448
1500
  function shallowRef(value) {
1449
1501
  return createRef(value);
1450
1502
  }
@@ -1632,7 +1684,7 @@ function customRef(factory) {
1632
1684
  * @param object - Reactive object to be made into an object of linked refs.
1633
1685
  * @see {@link https://vuejs.org/api/reactivity-utilities.html#torefs}
1634
1686
  */
1635
- /* @__NO_SIDE_EFFECTS__ */
1687
+ /*@__NO_SIDE_EFFECTS__*/
1636
1688
  function toRefs(object) {
1637
1689
  const ret = isArray(object) ? new Array(object.length) : {};
1638
1690
  for (const key in object) ret[key] = propertyToRef(object, key);
@@ -1683,7 +1735,7 @@ var GetterRefImpl = class {
1683
1735
  return this._value = this._getter();
1684
1736
  }
1685
1737
  };
1686
- /* @__NO_SIDE_EFFECTS__ */
1738
+ /*@__NO_SIDE_EFFECTS__*/
1687
1739
  function toRef(source, key, defaultValue) {
1688
1740
  if (/* @__PURE__ */ isRef(source)) return source;
1689
1741
  else if (isFunction(source)) return new GetterRefImpl(source);
@@ -1749,10 +1801,12 @@ var ReactiveEffect = class {
1749
1801
  get dirty() {
1750
1802
  const flags = this.flags;
1751
1803
  if (flags & 16) return true;
1752
- if (flags & 32) if (checkDirty(this.deps, this)) {
1753
- this.flags = flags | 16;
1754
- return true;
1755
- } else this.flags = flags & -33;
1804
+ if (flags & 32) {
1805
+ if (checkDirty(this.deps, this)) {
1806
+ this.flags = flags | 16;
1807
+ return true;
1808
+ } else this.flags = flags & -33;
1809
+ }
1756
1810
  return false;
1757
1811
  }
1758
1812
  };
@@ -1929,10 +1983,12 @@ var ComputedRefImpl = class {
1929
1983
  get _dirty() {
1930
1984
  const flags = this.flags;
1931
1985
  if (flags & 16) return true;
1932
- if (flags & 32) if (checkDirty(this.deps, this)) {
1933
- this.flags = flags | 16;
1934
- return true;
1935
- } 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
+ }
1936
1992
  return false;
1937
1993
  }
1938
1994
  /**
@@ -1985,7 +2041,7 @@ var ComputedRefImpl = class {
1985
2041
  }
1986
2042
  }
1987
2043
  };
1988
- /* @__NO_SIDE_EFFECTS__ */
2044
+ /*@__NO_SIDE_EFFECTS__*/
1989
2045
  function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1990
2046
  let getter;
1991
2047
  let setter;
@@ -2057,25 +2113,26 @@ var WatcherEffect = class extends ReactiveEffect {
2057
2113
  else if (/* @__PURE__ */ isReactive(s)) return reactiveGetter(s, deep);
2058
2114
  else if (isFunction(s)) return call ? call(s, 2) : s();
2059
2115
  });
2060
- } else if (isFunction(source)) if (cb) getter = call ? () => call(source, 2) : source;
2061
- else getter = () => {
2062
- if (this.cleanupsLength) {
2063
- const prevSub = setActiveSub();
2116
+ } else if (isFunction(source)) {
2117
+ if (cb) getter = call ? () => call(source, 2) : source;
2118
+ else getter = () => {
2119
+ if (this.cleanupsLength) {
2120
+ const prevSub = setActiveSub();
2121
+ try {
2122
+ cleanup(this);
2123
+ } finally {
2124
+ setActiveSub(prevSub);
2125
+ }
2126
+ }
2127
+ const currentEffect = activeWatcher;
2128
+ activeWatcher = this;
2064
2129
  try {
2065
- cleanup(this);
2130
+ return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2066
2131
  } finally {
2067
- setActiveSub(prevSub);
2132
+ activeWatcher = currentEffect;
2068
2133
  }
2069
- }
2070
- const currentEffect = activeWatcher;
2071
- activeWatcher = this;
2072
- try {
2073
- return call ? call(source, 3, [this.boundCleanup]) : source(this.boundCleanup);
2074
- } finally {
2075
- activeWatcher = currentEffect;
2076
- }
2077
- };
2078
- else getter = NOOP;
2134
+ };
2135
+ } else getter = NOOP;
2079
2136
  if (cb && deep) {
2080
2137
  const baseGetter = getter;
2081
2138
  const depth = deep === true ? Infinity : deep;
@@ -2288,7 +2345,7 @@ let currentFlushPromise = null;
2288
2345
  let jobsLength = 0;
2289
2346
  let flushIndex = 0;
2290
2347
  let postFlushIndex = 0;
2291
- const resolvedPromise = /* @__PURE__ */ Promise.resolve();
2348
+ const resolvedPromise = /*@__PURE__*/ Promise.resolve();
2292
2349
  function nextTick(fn) {
2293
2350
  const p = currentFlushPromise || resolvedPromise;
2294
2351
  return fn ? p.then(this ? fn.bind(this) : fn) : p;
@@ -2326,6 +2383,7 @@ const doFlushJobs = () => {
2326
2383
  flushJobs();
2327
2384
  } catch (e) {
2328
2385
  currentFlushPromise = null;
2386
+ if (jobsLength || postJobs.length) queueFlush();
2329
2387
  throw e;
2330
2388
  }
2331
2389
  };
@@ -2333,9 +2391,10 @@ function queueFlush() {
2333
2391
  if (!currentFlushPromise) currentFlushPromise = resolvedPromise.then(doFlushJobs);
2334
2392
  }
2335
2393
  function queuePostFlushCb(jobs, id = Infinity) {
2336
- if (!isArray(jobs)) if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2337
- else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2338
- else for (const job of jobs) queueJobWorker(job, id, postJobs, postJobs.length, 0);
2394
+ if (!isArray(jobs)) {
2395
+ if (activePostJobs && id === -1) activePostJobs.splice(postFlushIndex, 0, jobs);
2396
+ else queueJobWorker(jobs, id, postJobs, postJobs.length, 0);
2397
+ } else for (let i = 0; i < jobs.length; i++) queueJobWorker(jobs[i], id, postJobs, postJobs.length, 0);
2339
2398
  queueFlush();
2340
2399
  }
2341
2400
  function flushPreFlushCbs(instance, seen) {
@@ -2347,30 +2406,37 @@ function flushPreFlushCbs(instance, seen) {
2347
2406
  i--;
2348
2407
  jobsLength--;
2349
2408
  if (cb.flags & 2) cb.flags &= -2;
2350
- cb();
2351
- if (!(cb.flags & 2)) cb.flags &= -2;
2409
+ try {
2410
+ cb();
2411
+ } finally {
2412
+ if (!(cb.flags & 2)) cb.flags &= -2;
2413
+ }
2352
2414
  }
2353
2415
  }
2354
2416
  function flushPostFlushCbs(seen) {
2355
2417
  if (postJobs.length) {
2356
2418
  if (activePostJobs) {
2357
- activePostJobs.push(...postJobs);
2419
+ for (let i = 0; i < postJobs.length; i++) activePostJobs.push(postJobs[i]);
2358
2420
  postJobs.length = 0;
2359
2421
  return;
2360
2422
  }
2361
2423
  activePostJobs = postJobs;
2362
2424
  postJobs = [];
2363
- while (postFlushIndex < activePostJobs.length) {
2364
- const cb = activePostJobs[postFlushIndex++];
2365
- if (cb.flags & 2) cb.flags &= -2;
2366
- if (!(cb.flags & 4)) try {
2367
- cb();
2368
- } finally {
2369
- cb.flags &= -2;
2425
+ try {
2426
+ while (postFlushIndex < activePostJobs.length) {
2427
+ const cb = activePostJobs[postFlushIndex++];
2428
+ if (cb.flags & 2) cb.flags &= -2;
2429
+ if (!(cb.flags & 4)) try {
2430
+ cb();
2431
+ } finally {
2432
+ if (!(cb.flags & 2)) cb.flags &= -2;
2433
+ }
2370
2434
  }
2435
+ } finally {
2436
+ while (postFlushIndex < activePostJobs.length) activePostJobs[postFlushIndex++].flags &= -2;
2437
+ activePostJobs = null;
2438
+ postFlushIndex = 0;
2371
2439
  }
2372
- activePostJobs = null;
2373
- postFlushIndex = 0;
2374
2440
  }
2375
2441
  }
2376
2442
  let isFlushing = false;
@@ -2380,9 +2446,12 @@ let isFlushing = false;
2380
2446
  function flushOnAppMount(instance) {
2381
2447
  if (!isFlushing) {
2382
2448
  isFlushing = true;
2383
- flushPreFlushCbs(instance);
2384
- flushPostFlushCbs();
2385
- isFlushing = false;
2449
+ try {
2450
+ flushPreFlushCbs(instance);
2451
+ flushPostFlushCbs();
2452
+ } finally {
2453
+ isFlushing = false;
2454
+ }
2386
2455
  }
2387
2456
  }
2388
2457
  function flushJobs(seen) {
@@ -2410,8 +2479,8 @@ function flushJobs(seen) {
2410
2479
  jobsLength = 0;
2411
2480
  jobs.length = 0;
2412
2481
  flushPostFlushCbs(seen);
2413
- currentFlushPromise = null;
2414
2482
  if (jobsLength || postJobs.length) flushJobs(seen);
2483
+ else currentFlushPromise = null;
2415
2484
  }
2416
2485
  }
2417
2486
  //#endregion
@@ -2500,7 +2569,7 @@ function checkCompatEnabled$1(key, instance, ...args) {
2500
2569
  }
2501
2570
  //#endregion
2502
2571
  //#region packages/runtime-core/src/compat/instanceEventEmitter.ts
2503
- const eventRegistryMap = /* @__PURE__ */ new WeakMap();
2572
+ const eventRegistryMap = /*@__PURE__*/ new WeakMap();
2504
2573
  function getRegistry(instance) {
2505
2574
  let events = eventRegistryMap.get(instance);
2506
2575
  if (!events) eventRegistryMap.set(instance, events = Object.create(null));
@@ -2633,19 +2702,21 @@ const legacyDirectiveHookMap = {
2633
2702
  };
2634
2703
  function mapCompatDirectiveHook(name, dir, instance) {
2635
2704
  const mappedName = legacyDirectiveHookMap[name];
2636
- if (mappedName) if (isArray(mappedName)) {
2637
- const hook = [];
2638
- mappedName.forEach((mapped) => {
2639
- const mappedHook = dir[mapped];
2640
- if (mappedHook) {
2641
- softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
2642
- hook.push(mappedHook);
2643
- }
2644
- });
2645
- return hook.length ? hook : void 0;
2646
- } else {
2647
- if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
2648
- return dir[mappedName];
2705
+ if (mappedName) {
2706
+ if (isArray(mappedName)) {
2707
+ const hook = [];
2708
+ mappedName.forEach((mapped) => {
2709
+ const mappedHook = dir[mapped];
2710
+ if (mappedHook) {
2711
+ softAssertCompatEnabled("CUSTOM_DIR", instance, mapped, name);
2712
+ hook.push(mappedHook);
2713
+ }
2714
+ });
2715
+ return hook.length ? hook : void 0;
2716
+ } else {
2717
+ if (dir[mappedName]) softAssertCompatEnabled("CUSTOM_DIR", instance, mappedName, name);
2718
+ return dir[mappedName];
2719
+ }
2649
2720
  }
2650
2721
  }
2651
2722
  //#endregion
@@ -2815,7 +2886,7 @@ function instanceWatch(source, value, options) {
2815
2886
  }
2816
2887
  const prev = setCurrentInstance(this);
2817
2888
  const res = doWatch(getter, cb.bind(publicThis), options);
2818
- setCurrentInstance(...prev);
2889
+ restoreCurrentInstance(prev);
2819
2890
  return res;
2820
2891
  }
2821
2892
  function createPathGetter(ctx, path) {
@@ -2837,9 +2908,10 @@ const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target inst
2837
2908
  const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement;
2838
2909
  const resolveTarget = (props, select) => {
2839
2910
  const targetSelector = props && props.to;
2840
- if (isString(targetSelector)) if (!select) return null;
2841
- else return select(targetSelector);
2842
- else return targetSelector;
2911
+ if (isString(targetSelector)) {
2912
+ if (!select) return null;
2913
+ else return select(targetSelector);
2914
+ } else return targetSelector;
2843
2915
  };
2844
2916
  const TeleportImpl = {
2845
2917
  name: "Teleport",
@@ -2870,7 +2942,8 @@ const TeleportImpl = {
2870
2942
  if (pendingMounts.get(vnode) !== mountJob) return;
2871
2943
  pendingMounts.delete(vnode);
2872
2944
  if (isTeleportDisabled(vnode.props)) {
2873
- mount(vnode, parentNode(vnode.el) || container, vnode.anchor);
2945
+ const mountContainer = parentNode(vnode.el) || container;
2946
+ mount(vnode, mountContainer, vnode.anchor);
2874
2947
  updateCssVars(vnode, true);
2875
2948
  }
2876
2949
  mountToTarget(vnode);
@@ -2979,15 +3052,17 @@ function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScope
2979
3052
  const disabled = isTeleportDisabled(vnode.props);
2980
3053
  if (target) {
2981
3054
  const targetNode = target._lpa || target.firstChild;
2982
- if (vnode.shapeFlag & 16) if (disabled) {
2983
- hydrateDisabledTeleport(node, vnode);
2984
- hydrateAnchor(target, targetNode);
2985
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
2986
- } else {
2987
- vnode.anchor = nextSibling(node);
2988
- hydrateAnchor(target, targetNode);
2989
- if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
2990
- hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3055
+ if (vnode.shapeFlag & 16) {
3056
+ if (disabled) {
3057
+ hydrateDisabledTeleport(node, vnode);
3058
+ hydrateAnchor(target, targetNode);
3059
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3060
+ } else {
3061
+ vnode.anchor = nextSibling(node);
3062
+ hydrateAnchor(target, targetNode);
3063
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3064
+ hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3065
+ }
2991
3066
  }
2992
3067
  updateCssVars(vnode, disabled);
2993
3068
  } else if (disabled) {
@@ -3075,48 +3150,15 @@ const BaseTransitionImpl = {
3075
3150
  setup(props, { slots }) {
3076
3151
  const instance = getCurrentInstance();
3077
3152
  const state = useTransitionState();
3153
+ let resumeAfterLeave;
3078
3154
  return () => {
3079
- const children = slots.default && getTransitionRawChildren(slots.default(), true);
3080
- const child = children && children.length ? findNonCommentChild(children) : instance.subTree ? createCommentVNode() : void 0;
3155
+ const child = resolveTransitionChild(slots.default && slots.default(), !!instance.subTree);
3081
3156
  if (!child) return;
3082
3157
  const rawProps = /* @__PURE__ */ toRaw(props);
3083
3158
  const { mode } = rawProps;
3084
- if (state.isLeaving) return emptyPlaceholder(child);
3085
- const innerChild = getInnerChild$1(child);
3086
- if (!innerChild) return emptyPlaceholder(child);
3087
- let enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance, (hooks) => enterHooks = hooks);
3088
- if (innerChild.type !== Comment) setTransitionHooks(innerChild, enterHooks);
3089
- let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3090
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3091
- let leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
3092
- setTransitionHooks(oldInnerChild, leavingHooks);
3093
- if (mode === "out-in" && innerChild.type !== Comment) {
3094
- state.isLeaving = true;
3095
- leavingHooks.afterLeave = () => {
3096
- state.isLeaving = false;
3097
- if (!(instance.job.flags & 4)) instance.update();
3098
- delete leavingHooks.afterLeave;
3099
- oldInnerChild = void 0;
3100
- };
3101
- return emptyPlaceholder(child);
3102
- } else if (mode === "in-out" && innerChild.type !== Comment) leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3103
- const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
3104
- leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
3105
- el[leaveCbKey] = () => {
3106
- earlyRemove();
3107
- el[leaveCbKey] = void 0;
3108
- delete enterHooks.delayedLeave;
3109
- oldInnerChild = void 0;
3110
- };
3111
- enterHooks.delayedLeave = () => {
3112
- delayedLeave();
3113
- delete enterHooks.delayedLeave;
3114
- oldInnerChild = void 0;
3115
- };
3116
- };
3117
- else oldInnerChild = void 0;
3118
- } else if (oldInnerChild) oldInnerChild = void 0;
3119
- return child;
3159
+ return prepareTransitionSwitch(instance.subTree, child, rawProps, state, instance, mode === "out-in" ? resumeAfterLeave || (resumeAfterLeave = () => {
3160
+ if (!(instance.job.flags & 4)) instance.update();
3161
+ }) : NOOP);
3120
3162
  };
3121
3163
  }
3122
3164
  };
@@ -3181,8 +3223,10 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3181
3223
  persisted,
3182
3224
  beforeEnter(el) {
3183
3225
  let hook = onBeforeEnter;
3184
- if (!state.isMounted) if (appear) hook = onBeforeAppear || onBeforeEnter;
3185
- else return;
3226
+ if (!state.isMounted) {
3227
+ if (appear) hook = onBeforeAppear || onBeforeEnter;
3228
+ else return;
3229
+ }
3186
3230
  if (el[leaveCbKey]) el[leaveCbKey](true);
3187
3231
  earlyRemove();
3188
3232
  callHook(hook, [el]);
@@ -3192,11 +3236,13 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3192
3236
  let hook = onEnter;
3193
3237
  let afterHook = onAfterEnter;
3194
3238
  let cancelHook = onEnterCancelled;
3195
- if (!state.isMounted) if (appear) {
3196
- hook = onAppear || onEnter;
3197
- afterHook = onAfterAppear || onAfterEnter;
3198
- cancelHook = onAppearCancelled || onEnterCancelled;
3199
- } else return;
3239
+ if (!state.isMounted) {
3240
+ if (appear) {
3241
+ hook = onAppear || onEnter;
3242
+ afterHook = onAfterAppear || onAfterEnter;
3243
+ cancelHook = onAppearCancelled || onEnterCancelled;
3244
+ } else return;
3245
+ }
3200
3246
  let called = false;
3201
3247
  el[enterCbKey$1] = (cancelled) => {
3202
3248
  if (called) return;
@@ -3230,7 +3276,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3230
3276
  else done();
3231
3277
  },
3232
3278
  clone(node) {
3233
- return cloneHooks(node);
3279
+ return cloneHooks ? cloneHooks(node) : hooks;
3234
3280
  }
3235
3281
  };
3236
3282
  return hooks;
@@ -3254,16 +3300,91 @@ function getInnerChild$1(vnode) {
3254
3300
  if (shapeFlag & 32 && isFunction(children.default)) return children.default();
3255
3301
  }
3256
3302
  }
3303
+ function resolveTransitionChild(children, renderEmpty = false) {
3304
+ const branches = children && getTransitionRawChildren(children, true);
3305
+ return branches && branches.length ? findNonCommentChild(branches) : renderEmpty ? createCommentVNode() : void 0;
3306
+ }
3307
+ /**
3308
+ * @internal
3309
+ */
3310
+ function prepareTransitionSwitch(previous, next, props, state, instance, resumeAfterLeave, delayedLeaveSource) {
3311
+ if (state.isLeaving) return emptyPlaceholder(next);
3312
+ const nextInner = getInnerChild$1(next);
3313
+ if (!nextInner) return emptyPlaceholder(next);
3314
+ let enterHooks = resolveTransitionHooks(nextInner, props, state, instance, (hooks) => {
3315
+ if (delayedLeaveSource) forwardDelayedLeave(hooks, delayedLeaveSource);
3316
+ enterHooks = hooks;
3317
+ });
3318
+ if (delayedLeaveSource) forwardDelayedLeave(enterHooks, delayedLeaveSource);
3319
+ if (nextInner.type !== Comment) setTransitionHooks(nextInner, enterHooks);
3320
+ const mode = props.mode;
3321
+ const previousInner = previous && getInnerChild$1(previous);
3322
+ if (previous && previousInner && previousInner.type !== Comment && !isSameVNodeType(previousInner, nextInner) && (!previous.component || recursiveGetSubtree(previous.component).type !== Comment)) {
3323
+ const leavingHooks = prepareLeavingTransitionHooks(previousInner, props, state, instance);
3324
+ 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);
3325
+ }
3326
+ return next;
3327
+ }
3328
+ function forwardDelayedLeave(hooks, source) {
3329
+ const delayedLeave = source && source.delayedLeave;
3330
+ if (!delayedLeave) return;
3331
+ hooks.delayedLeave = () => {
3332
+ if (source.delayedLeave === delayedLeave) delayedLeave();
3333
+ delete hooks.delayedLeave;
3334
+ };
3335
+ }
3336
+ function prepareLeavingTransitionHooks(previousInner, props, state, instance) {
3337
+ return setTransitionHooks(previousInner, resolveTransitionHooks(previousInner, props, state, instance));
3338
+ }
3339
+ function applyTransitionModeSwitch(leavingVNode, leavingHooks, getEnterHooks, props, state, resumeAfterLeave) {
3340
+ if (props.mode === "out-in") {
3341
+ state.isLeaving = true;
3342
+ leavingHooks.afterLeave = () => {
3343
+ state.isLeaving = false;
3344
+ resumeAfterLeave();
3345
+ delete leavingHooks.afterLeave;
3346
+ };
3347
+ return true;
3348
+ } else if (props.mode === "in-out" && getEnterHooks) {
3349
+ let delayedLeavingVNode = leavingVNode;
3350
+ leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
3351
+ const enterHooks = getEnterHooks();
3352
+ if (!enterHooks) {
3353
+ delayedLeave();
3354
+ return;
3355
+ }
3356
+ const vnode = delayedLeavingVNode;
3357
+ const leavingVNodesCache = getLeavingNodesForType(state, vnode);
3358
+ leavingVNodesCache[String(vnode.key)] = vnode;
3359
+ el[leaveCbKey] = () => {
3360
+ earlyRemove();
3361
+ el[leaveCbKey] = void 0;
3362
+ delete enterHooks.delayedLeave;
3363
+ delayedLeavingVNode = void 0;
3364
+ };
3365
+ enterHooks.delayedLeave = () => {
3366
+ delayedLeave();
3367
+ delete enterHooks.delayedLeave;
3368
+ delayedLeavingVNode = void 0;
3369
+ };
3370
+ };
3371
+ }
3372
+ return false;
3373
+ }
3257
3374
  function setTransitionHooks(vnode, hooks) {
3258
- if (vnode.shapeFlag & 6 && vnode.component) if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3259
- else {
3375
+ if (vnode.shapeFlag & 6 && vnode.component) {
3260
3376
  vnode.transition = hooks;
3261
- setTransitionHooks(vnode.component.subTree, hooks);
3262
- }
3263
- else if (vnode.shapeFlag & 128) {
3264
- vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3265
- vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3377
+ if (isVaporComponent(vnode.type)) getVaporInterface(vnode.component, vnode).setTransitionHooks(vnode.component, hooks);
3378
+ else {
3379
+ const subTree = vnode.component.subTree;
3380
+ return setTransitionHooks(isTeleport(subTree.type) ? getInnerChild$1(subTree) || subTree : subTree, hooks);
3381
+ }
3382
+ } else if (vnode.shapeFlag & 128) {
3383
+ const contentHooks = vnode.ssContent.transition = hooks.clone(vnode.ssContent);
3384
+ const fallbackHooks = vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3385
+ return vnode.suspense && vnode.suspense.activeBranch === vnode.ssFallback ? fallbackHooks : contentHooks;
3266
3386
  } else vnode.transition = hooks;
3387
+ return hooks;
3267
3388
  }
3268
3389
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
3269
3390
  let ret = [];
@@ -3281,9 +3402,9 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
3281
3402
  }
3282
3403
  //#endregion
3283
3404
  //#region packages/runtime-core/src/apiDefineComponent.ts
3284
- /* @__NO_SIDE_EFFECTS__ */
3405
+ /*@__NO_SIDE_EFFECTS__*/
3285
3406
  function defineComponent(options, extraOptions) {
3286
- return isFunction(options) ? extend({ name: options.name }, extraOptions, { setup: options }) : options;
3407
+ return isFunction(options) ? /*@__PURE__*/ (() => extend({ name: options.name }, extraOptions, { setup: options }))() : options;
3287
3408
  }
3288
3409
  //#endregion
3289
3410
  //#region packages/runtime-core/src/helpers/useId.ts
@@ -3370,15 +3491,16 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3370
3491
  if (rawRef.f) {
3371
3492
  const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];
3372
3493
  if (isUnmount) isArray(existing) && remove(existing, refValue);
3373
- else if (!isArray(existing)) if (_isString) {
3374
- refs[ref] = [refValue];
3375
- if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3376
- } else {
3377
- const newVal = [refValue];
3378
- if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3379
- if (rawRef.k) refs[rawRef.k] = newVal;
3380
- }
3381
- else if (!existing.includes(refValue)) existing.push(refValue);
3494
+ else if (!isArray(existing)) {
3495
+ if (_isString) {
3496
+ refs[ref] = [refValue];
3497
+ if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
3498
+ } else {
3499
+ const newVal = [refValue];
3500
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
3501
+ if (rawRef.k) refs[rawRef.k] = newVal;
3502
+ }
3503
+ } else if (!existing.includes(refValue)) existing.push(refValue);
3382
3504
  } else if (_isString) {
3383
3505
  refs[ref] = value;
3384
3506
  if (canSetSetupRef(ref)) setupState[ref] = value;
@@ -3428,7 +3550,18 @@ const logMismatchError = () => {
3428
3550
  hasLoggedMismatchError = true;
3429
3551
  };
3430
3552
  const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject";
3431
- const isMathMLContainer = (container) => container.namespaceURI.includes("MathML");
3553
+ const isMathMLContainer = (container) => {
3554
+ if (!container.namespaceURI.includes("MathML")) return false;
3555
+ if (container.tagName !== "annotation-xml") return true;
3556
+ const encoding = container.getAttribute("encoding");
3557
+ return !encoding || !encoding.includes("html");
3558
+ };
3559
+ /**
3560
+ * Resolve the element namespace a container's children should be created in.
3561
+ * The live DOM is the source of truth, so this also covers containers that are
3562
+ * only known at runtime (interop boundaries, teleport targets).
3563
+ * @internal
3564
+ */
3432
3565
  const getContainerType = (container) => {
3433
3566
  if (container.nodeType !== 1) return void 0;
3434
3567
  if (isSVGContainer(container)) return "svg";
@@ -3451,7 +3584,7 @@ function createHydrationFunctions(rendererInternals) {
3451
3584
  };
3452
3585
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
3453
3586
  optimized = optimized || !!vnode.dynamicChildren;
3454
- const isFragmentStart = isComment(node) && node.data === "[";
3587
+ const isFragmentStart = isComment(node) && (node.data === "[" || node.data === "(");
3455
3588
  const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
3456
3589
  const { type, ref, shapeFlag, patchFlag } = vnode;
3457
3590
  let domType = node.nodeType;
@@ -3463,11 +3596,12 @@ function createHydrationFunctions(rendererInternals) {
3463
3596
  let nextNode = null;
3464
3597
  switch (type) {
3465
3598
  case Text:
3466
- if (domType !== 3) if (vnode.children === "") {
3467
- insert(vnode.el = createText(""), parentNode(node), node);
3468
- nextNode = node;
3469
- } else nextNode = onMismatch();
3470
- else {
3599
+ if (domType !== 3) {
3600
+ if (vnode.children === "") {
3601
+ insert(vnode.el = createText(""), parentNode(node), node);
3602
+ nextNode = node;
3603
+ } else nextNode = onMismatch();
3604
+ } else {
3471
3605
  if (node.data !== vnode.children) {
3472
3606
  logMismatchError();
3473
3607
  node.data = vnode.children;
@@ -3503,45 +3637,35 @@ function createHydrationFunctions(rendererInternals) {
3503
3637
  else nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3504
3638
  break;
3505
3639
  case VaporSlot:
3506
- nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense);
3640
+ nextNode = getVaporInterface(parentComponent, vnode).hydrateSlot(vnode, node, parentComponent, parentSuspense, slotScopeIds);
3507
3641
  break;
3508
- default: if (shapeFlag & 1) if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
3509
- else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3510
- else if (shapeFlag & 6) {
3642
+ default: if (shapeFlag & 1) {
3643
+ if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode$1(node)) nextNode = onMismatch();
3644
+ else nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
3645
+ } else if (shapeFlag & 6) {
3511
3646
  vnode.slotScopeIds = slotScopeIds;
3512
3647
  const container = parentNode(node);
3513
3648
  if (isFragmentStart) nextNode = locateClosingAnchor(node);
3514
3649
  else if (isComment(node) && node.data === "teleport start") nextNode = locateClosingAnchor(node, node.data, "teleport end");
3515
3650
  else nextNode = nextSibling(node);
3516
- if (vnode.type.__vapor) {
3517
- const vnodeBeforeMountHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeBeforeMount;
3518
- getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense, () => {
3519
- if (vnode.dirs) {
3520
- invokeDirectiveHook(vnode, null, parentComponent, "created");
3521
- invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
3522
- }
3523
- }, () => {
3524
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, vnode);
3525
- });
3526
- if (vnode.dirs) queueEffectWithSuspense(() => invokeDirectiveHook(vnode, null, parentComponent, "mounted"), void 0, parentSuspense);
3527
- const vnodeMountedHook = !isAsyncWrapper(vnode) && vnode.props && vnode.props.onVnodeMounted;
3528
- if (vnodeMountedHook) queueEffectWithSuspense(() => invokeVNodeHook(vnodeMountedHook, parentComponent, vnode), void 0, parentSuspense);
3529
- } else {
3651
+ if (vnode.type.__vapor) getVaporInterface(parentComponent, vnode).hydrate(vnode, node, container, nextNode, parentComponent, parentSuspense);
3652
+ else {
3530
3653
  mountComponent(vnode, container, null, parentComponent, parentSuspense, getContainerType(container), optimized);
3531
3654
  const component = vnode.component;
3532
- if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved || component.asyncDep && !component.asyncResolved) {
3655
+ if (!component.subTree && (isAsyncWrapper(vnode) || component.asyncDep)) {
3533
3656
  let subTree;
3534
3657
  if (isFragmentStart) {
3535
- subTree = createVNode(Fragment);
3658
+ subTree = createVNode(Static);
3536
3659
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
3537
- } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
3660
+ } else subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(node.nodeType === 8 ? Comment : "div");
3538
3661
  subTree.el = node;
3539
3662
  component.subTree = subTree;
3540
3663
  }
3541
3664
  }
3542
- } else if (shapeFlag & 64) if (domType !== 8) nextNode = onMismatch();
3543
- else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3544
- else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3665
+ } else if (shapeFlag & 64) {
3666
+ if (domType !== 8) nextNode = onMismatch();
3667
+ else nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
3668
+ } else if (shapeFlag & 128) nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, getContainerType(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
3545
3669
  }
3546
3670
  if (ref != null) setRef(ref, null, parentSuspense, vnode);
3547
3671
  return nextNode;
@@ -3586,7 +3710,10 @@ function createHydrationFunctions(rendererInternals) {
3586
3710
  if (forcePatch || hasDynamicProps || !optimized || patchFlag & 48) {
3587
3711
  const isCustomElement = el.tagName.includes("-");
3588
3712
  const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
3589
- for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) patchProp(el, key, null, props[key], namespace, parentComponent);
3713
+ for (const key in props) if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
3714
+ if (isUnchangedResourceProp(el, key, props[key])) continue;
3715
+ patchProp(el, key, null, props[key], namespace, parentComponent);
3716
+ }
3590
3717
  } else if (props.onClick) patchProp(el, "onClick", null, props.onClick, void 0, parentComponent);
3591
3718
  else if (patchFlag & 4 && /* @__PURE__ */ isReactive(props.style)) for (const key in props.style) props.style[key];
3592
3719
  }
@@ -3632,8 +3759,9 @@ function createHydrationFunctions(rendererInternals) {
3632
3759
  const { slotScopeIds: fragmentSlotScopeIds } = vnode;
3633
3760
  if (fragmentSlotScopeIds) slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
3634
3761
  const container = parentNode(node);
3635
- const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
3636
- if (next && isComment(next) && next.data === "]") return nextSibling(vnode.anchor = next);
3762
+ const first = nextSibling(node);
3763
+ const next = vnode.vo && node.data === "(" ? getVaporInterface(parentComponent, vnode).hydrateSlotOutlet(vnode, node, parentComponent, parentSuspense, slotScopeIds) : hydrateChildren(first, vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
3764
+ if (next && isComment(next) && next.data === (node.data === "(" ? ")" : "]")) return nextSibling(vnode.anchor = next);
3637
3765
  else {
3638
3766
  logMismatchError();
3639
3767
  insert(vnode.anchor = createComment(`]`), container, next);
@@ -3655,20 +3783,22 @@ function createHydrationFunctions(rendererInternals) {
3655
3783
  const container = parentNode(node);
3656
3784
  remove(node);
3657
3785
  patch(null, vnode, container, next, parentComponent, parentSuspense, getContainerType(container), slotScopeIds);
3658
- if (parentComponent) {
3786
+ if (parentComponent && parentComponent.vnode) {
3659
3787
  parentComponent.vnode.el = vnode.el;
3660
3788
  updateHOCHostEl(parentComponent, vnode.el);
3661
3789
  }
3662
3790
  return next;
3663
3791
  };
3664
- const locateClosingAnchor = (node, open = "[", close = "]") => {
3792
+ const locateClosingAnchor = (node, open = node && isComment(node) && node.data === "(" ? "(" : "[", close = open === "(" ? ")" : "]") => {
3665
3793
  let match = 0;
3666
3794
  while (node) {
3667
3795
  node = nextSibling(node);
3668
3796
  if (node && isComment(node)) {
3669
3797
  if (node.data === open) match++;
3670
- if (node.data === close) if (match === 0) return nextSibling(node);
3671
- else match--;
3798
+ if (node.data === close) {
3799
+ if (match === 0) return nextSibling(node);
3800
+ else match--;
3801
+ }
3672
3802
  }
3673
3803
  }
3674
3804
  return node;
@@ -3678,7 +3808,7 @@ function createHydrationFunctions(rendererInternals) {
3678
3808
  if (parentNode) parentNode.replaceChild(newNode, oldNode);
3679
3809
  let parent = parentComponent;
3680
3810
  while (parent) {
3681
- if (parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
3811
+ if (parent.vnode && parent.vnode.el === oldNode) parent.vnode.el = parent.subTree.el = newNode;
3682
3812
  parent = parent.parent;
3683
3813
  }
3684
3814
  };
@@ -3687,6 +3817,16 @@ function createHydrationFunctions(rendererInternals) {
3687
3817
  const isTemplateNode$1 = (node) => {
3688
3818
  return node.nodeType === 1 && node.tagName === "TEMPLATE";
3689
3819
  };
3820
+ const resourceProps = /*@__PURE__*/ new Set([
3821
+ "src",
3822
+ "srcset",
3823
+ "href",
3824
+ "poster"
3825
+ ]);
3826
+ function isUnchangedResourceProp(el, key, clientValue) {
3827
+ if (!resourceProps.has(key)) return false;
3828
+ return el.getAttribute(key) === (clientValue == null ? null : `${clientValue}`);
3829
+ }
3690
3830
  const allowMismatchAttr = "data-allow-mismatch";
3691
3831
  const MismatchTypeString = {
3692
3832
  [0]: "text",
@@ -3791,16 +3931,18 @@ const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {
3791
3931
  return teardown;
3792
3932
  };
3793
3933
  function forEachElement(node, cb) {
3794
- if (isComment(node) && node.data === "[") {
3934
+ if (isComment(node) && (node.data === "[" || node.data === "(")) {
3935
+ const open = node.data;
3936
+ const close = open === "[" ? "]" : ")";
3795
3937
  let depth = 1;
3796
3938
  let next = node.nextSibling;
3797
3939
  while (next) {
3798
3940
  if (next.nodeType === 1) {
3799
3941
  if (cb(next) === false) break;
3800
3942
  } else if (isComment(next)) {
3801
- if (next.data === "]") {
3943
+ if (next.data === close) {
3802
3944
  if (--depth === 0) break;
3803
- } else if (next.data === "[") depth++;
3945
+ } else if (next.data === open) depth++;
3804
3946
  }
3805
3947
  next = next.nextSibling;
3806
3948
  }
@@ -3809,14 +3951,14 @@ function forEachElement(node, cb) {
3809
3951
  //#endregion
3810
3952
  //#region packages/runtime-core/src/apiAsyncComponent.ts
3811
3953
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
3812
- /* @__NO_SIDE_EFFECTS__ */
3954
+ /*@__NO_SIDE_EFFECTS__*/
3813
3955
  function defineAsyncComponent(source) {
3814
3956
  const { load, getResolvedComp, setPendingRequest, source: { loadingComponent, errorComponent, delay, hydrate: hydrateStrategy, timeout, suspensible = true } } = createAsyncComponentContext(source);
3815
3957
  return /* @__PURE__ */ defineComponent({
3816
3958
  name: "AsyncComponentWrapper",
3817
3959
  __asyncLoader: load,
3818
3960
  __asyncHydrate(el, instance, hydrate) {
3819
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
3961
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
3820
3962
  },
3821
3963
  get __asyncResolved() {
3822
3964
  return getResolvedComp();
@@ -3933,10 +4075,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
3933
4075
  * shared between core and vapor
3934
4076
  * @internal
3935
4077
  */
3936
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
4078
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
3937
4079
  const wasConnected = el.isConnected;
3938
4080
  let patched = false;
3939
- (instance.bu || (instance.bu = [])).push(() => patched = true);
4081
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
3940
4082
  const performHydrate = () => {
3941
4083
  if (patched) return;
3942
4084
  if (!el.parentNode || wasConnected && !el.isConnected) return;
@@ -4019,10 +4161,13 @@ const KeepAliveImpl = {
4019
4161
  });
4020
4162
  let pendingCacheKey = null;
4021
4163
  const cacheSubtree = () => {
4022
- if (pendingCacheKey != null) if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4023
- cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4024
- }, void 0, keepAliveInstance.subTree.suspense);
4025
- else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4164
+ if (pendingCacheKey != null) {
4165
+ if (isSuspense(keepAliveInstance.subTree.type)) queuePostRenderEffect(() => {
4166
+ const vnode = getInnerChild(keepAliveInstance.subTree);
4167
+ if (vnode.component) cache.set(pendingCacheKey, vnode);
4168
+ }, void 0, keepAliveInstance.subTree.suspense);
4169
+ else cache.set(pendingCacheKey, getInnerChild(keepAliveInstance.subTree));
4170
+ }
4026
4171
  };
4027
4172
  onMounted(cacheSubtree);
4028
4173
  onUpdated(cacheSubtree);
@@ -4092,7 +4237,7 @@ const decorate$2 = (t) => {
4092
4237
  t.__isBuiltIn = true;
4093
4238
  return t;
4094
4239
  };
4095
- const KeepAlive = /* @__PURE__ */ decorate$2(KeepAliveImpl);
4240
+ const KeepAlive = /*@__PURE__*/ decorate$2(KeepAliveImpl);
4096
4241
  function matches(pattern, name) {
4097
4242
  if (isArray(pattern)) return pattern.some((p) => matches(p, name));
4098
4243
  else if (isString(pattern)) return pattern.split(",").includes(name);
@@ -4181,7 +4326,7 @@ function injectHook(type, hook, target = currentInstance, prepend = false) {
4181
4326
  try {
4182
4327
  return callWithAsyncErrorHandling(hook, target, type, args);
4183
4328
  } finally {
4184
- setCurrentInstance(...prev);
4329
+ restoreCurrentInstance(prev);
4185
4330
  setActiveSub(prevSub);
4186
4331
  }
4187
4332
  });
@@ -4302,16 +4447,17 @@ function compatH(type, propsOrChildren, children) {
4302
4447
  }
4303
4448
  const l = arguments.length;
4304
4449
  const is2ndArgArrayChildren = isArray(propsOrChildren);
4305
- if (l === 2 || is2ndArgArrayChildren) if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
4306
- if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
4307
- return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
4308
- } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
4309
- else {
4450
+ if (l === 2 || is2ndArgArrayChildren) {
4451
+ if (isObject(propsOrChildren) && !is2ndArgArrayChildren) {
4452
+ if (isVNode(propsOrChildren)) return convertLegacySlots(createVNode(type, null, [propsOrChildren]));
4453
+ return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type)), propsOrChildren));
4454
+ } else return convertLegacySlots(createVNode(type, null, propsOrChildren));
4455
+ } else {
4310
4456
  if (isVNode(children)) children = [children];
4311
4457
  return convertLegacySlots(convertLegacyDirectives(createVNode(type, convertLegacyProps(propsOrChildren, type), children), propsOrChildren));
4312
4458
  }
4313
4459
  }
4314
- const skipLegacyRootLevelProps = /* @__PURE__ */ makeMap("staticStyle,staticClass,directives,model,hook");
4460
+ const skipLegacyRootLevelProps = /*@__PURE__*/ makeMap("staticStyle,staticClass,directives,model,hook");
4315
4461
  function convertLegacyProps(legacyProps, type) {
4316
4462
  if (!legacyProps) return null;
4317
4463
  const converted = {};
@@ -4323,8 +4469,10 @@ function convertLegacyProps(legacyProps, type) {
4323
4469
  if (key === "nativeOn") handlerKey += `Native`;
4324
4470
  const existing = converted[handlerKey];
4325
4471
  const incoming = listeners[event];
4326
- if (existing !== incoming) if (existing) converted[handlerKey] = [].concat(existing, incoming);
4327
- else converted[handlerKey] = incoming;
4472
+ if (existing !== incoming) {
4473
+ if (existing) converted[handlerKey] = [].concat(existing, incoming);
4474
+ else converted[handlerKey] = incoming;
4475
+ }
4328
4476
  }
4329
4477
  } else if (!skipLegacyRootLevelProps(key)) converted[key] = legacyProps[key];
4330
4478
  if (legacyProps.staticClass) converted.class = normalizeClass([legacyProps.staticClass, converted.class]);
@@ -4423,7 +4571,7 @@ function convertLegacyFunctionalComponent(comp) {
4423
4571
  const legacyFn = comp.render;
4424
4572
  const Func = (props, ctx) => {
4425
4573
  const instance = getCurrentInstance();
4426
- return legacyFn(compatH, {
4574
+ const legacyCtx = {
4427
4575
  props,
4428
4576
  children: instance.vnode.children || [],
4429
4577
  data: instance.vnode.props || {},
@@ -4443,7 +4591,8 @@ function convertLegacyFunctionalComponent(comp) {
4443
4591
  }
4444
4592
  return {};
4445
4593
  }
4446
- });
4594
+ };
4595
+ return legacyFn(compatH, legacyCtx);
4447
4596
  };
4448
4597
  Func.props = comp.props;
4449
4598
  Func.displayName = comp.name;
@@ -4475,16 +4624,17 @@ function renderList(source, renderItem, cache, index) {
4475
4624
  } else if (typeof source === "number") {
4476
4625
  ret = new Array(source);
4477
4626
  for (let i = 0; i < source; i++) ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
4478
- } else if (isObject(source)) if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4479
- else {
4480
- const keys = Object.keys(source);
4481
- ret = new Array(keys.length);
4482
- for (let i = 0, l = keys.length; i < l; i++) {
4483
- const key = keys[i];
4484
- ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4627
+ } else if (isObject(source)) {
4628
+ if (source[Symbol.iterator]) ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
4629
+ else {
4630
+ const keys = Object.keys(source);
4631
+ ret = new Array(keys.length);
4632
+ for (let i = 0, l = keys.length; i < l; i++) {
4633
+ const key = keys[i];
4634
+ ret[i] = renderItem(source[key], key, i, cached && cached[i]);
4635
+ }
4485
4636
  }
4486
- }
4487
- else ret = [];
4637
+ } else ret = [];
4488
4638
  if (cache) cache[index] = ret;
4489
4639
  return ret;
4490
4640
  }
@@ -4509,18 +4659,45 @@ function createSlots(slots, dynamicSlots) {
4509
4659
  //#endregion
4510
4660
  //#region packages/runtime-core/src/helpers/renderSlot.ts
4511
4661
  /**
4662
+ * Links a slot function to its raw vapor slot: a raw vapor slot carries
4663
+ * itself, and the wrapper the interop slots proxy hands out carries the raw
4664
+ * slot it wraps — one lookup answers both "is this a vapor slot" and
4665
+ * "which one". Internal to vapor interop.
4666
+ */
4667
+ const rawVaporSlotKey = Symbol(`rawVaporSlot`);
4668
+ /**
4669
+ * Invokes a VDOM slot fallback under the outlet owner that produced it, the
4670
+ * way `renderSlot` would have rendered it inline. Vapor interop invokes
4671
+ * fallbacks late, outside any render, so it passes the owner recorded on the
4672
+ * vapor slot vnode. Internal to vapor interop.
4673
+ */
4674
+ function invokeSlotFallback(fallback, owner) {
4675
+ if (!owner) return fallback();
4676
+ const prev = setCurrentRenderingInstance(owner);
4677
+ const prevStackSize = blockStack.length;
4678
+ try {
4679
+ return fallback();
4680
+ } finally {
4681
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
4682
+ setCurrentRenderingInstance(prev);
4683
+ }
4684
+ }
4685
+ /**
4512
4686
  * Compiler runtime helper for rendering `<slot/>`
4513
4687
  * @private
4514
4688
  */
4515
- function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
4689
+ function renderSlot(slots, name, props, fallback, noSlotted, branchKey) {
4690
+ if (props == null) props = {};
4516
4691
  let slot = slots[name];
4517
- if (fallback) fallback.__vdom = true;
4518
- const vaporSlot = slot && (slot.__vs || (slot.__vapor ? slot : null));
4692
+ const vaporSlot = slot && slot[rawVaporSlotKey];
4519
4693
  if (vaporSlot) {
4520
4694
  const ret = (openBlock(), createBlock(VaporSlot, props));
4521
4695
  ret.vs = {
4522
4696
  slot: vaporSlot,
4523
- fallback
4697
+ outlets: fallback ? [{
4698
+ fallback,
4699
+ owner: currentRenderingInstance
4700
+ }] : void 0
4524
4701
  };
4525
4702
  if (!noSlotted && ret.scopeId) ret.slotScopeIds = [ret.scopeId + "-s"];
4526
4703
  return ret;
@@ -4537,9 +4714,15 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
4537
4714
  let rendered;
4538
4715
  try {
4539
4716
  const validSlotContent = slot && ensureValidVNode(slot(props));
4540
- ensureVaporSlotFallback(validSlotContent, fallback);
4717
+ let attached = false;
4718
+ if (fallback && validSlotContent && currentRenderingInstance) {
4719
+ const interop = currentRenderingInstance.appContext.vapor;
4720
+ if (interop) attached = interop.attachSlotOutlet(validSlotContent, fallback, currentRenderingInstance);
4721
+ }
4541
4722
  const slotKey = props.key || branchKey || validSlotContent && validSlotContent.key;
4542
4723
  rendered = createBlock(Fragment, { key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + (!validSlotContent && fallback ? "_fb" : "") }, validSlotContent || (fallback ? fallback() : []), validSlotContent && slots._ === 1 ? 64 : -2);
4724
+ if (!validSlotContent && fallback) rendered.shapeFlag |= 1024;
4725
+ if (attached) rendered.vo = true;
4543
4726
  } catch (err) {
4544
4727
  for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
4545
4728
  throw err;
@@ -4557,10 +4740,6 @@ function ensureValidVNode(vnodes) {
4557
4740
  return true;
4558
4741
  }) ? vnodes : null;
4559
4742
  }
4560
- function ensureVaporSlotFallback(vnodes, fallback) {
4561
- let vaporSlot;
4562
- if (vnodes && vnodes.length === 1 && isVNode(vnodes[0]) && (vaporSlot = vnodes[0].vs)) vaporSlot.outletFallback = fallback;
4563
- }
4564
4743
  //#endregion
4565
4744
  //#region packages/runtime-core/src/helpers/toHandlers.ts
4566
4745
  /**
@@ -4615,12 +4794,14 @@ function legacyResolveScopedSlots(fns, raw, hasDynamicKeys) {
4615
4794
  function mapKeyToName(slots) {
4616
4795
  for (let i = 0; i < slots.length; i++) {
4617
4796
  const fn = slots[i];
4618
- if (fn) if (isArray(fn)) mapKeyToName(fn);
4619
- else fn.name = fn.key || "default";
4797
+ if (fn) {
4798
+ if (isArray(fn)) mapKeyToName(fn);
4799
+ else fn.name = fn.key || "default";
4800
+ }
4620
4801
  }
4621
4802
  return slots;
4622
4803
  }
4623
- const staticCacheMap = /* @__PURE__ */ new WeakMap();
4804
+ const staticCacheMap = /*@__PURE__*/ new WeakMap();
4624
4805
  function legacyRenderStatic(instance, index) {
4625
4806
  let cache = staticCacheMap.get(instance);
4626
4807
  if (!cache) staticCacheMap.set(instance, cache = []);
@@ -4843,7 +5024,7 @@ const PublicInstanceProxyHandlers = {
4843
5024
  return Reflect.defineProperty(target, key, descriptor);
4844
5025
  }
4845
5026
  };
4846
- const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
5027
+ const RuntimeCompiledPublicInstanceProxyHandlers = /*@__PURE__*/ extend({}, PublicInstanceProxyHandlers, {
4847
5028
  get(target, key) {
4848
5029
  if (key === Symbol.unscopables) return;
4849
5030
  return PublicInstanceProxyHandlers.get(target, key, target);
@@ -4967,12 +5148,13 @@ function mergeDefaults(raw, defaults) {
4967
5148
  for (const key in defaults) {
4968
5149
  if (key.startsWith("__skip")) continue;
4969
5150
  let opt = props[key];
4970
- if (opt) if (isArray(opt) || isFunction(opt)) opt = props[key] = {
4971
- type: opt,
4972
- default: defaults[key]
4973
- };
4974
- else opt.default = defaults[key];
4975
- else if (opt === null) opt = props[key] = { default: defaults[key] };
5151
+ if (opt) {
5152
+ if (isArray(opt) || isFunction(opt)) opt = props[key] = {
5153
+ type: opt,
5154
+ default: defaults[key]
5155
+ };
5156
+ else opt.default = defaults[key];
5157
+ } else if (opt === null) opt = props[key] = { default: defaults[key] };
4976
5158
  if (opt && defaults[`__skip_${key}`]) opt.skipFactory = true;
4977
5159
  }
4978
5160
  return props;
@@ -5021,36 +5203,31 @@ function createPropsRestProxy(props, excludedKeys) {
5021
5203
  function withAsyncContext(getAwaitable) {
5022
5204
  const ctx = getCurrentGenericInstance();
5023
5205
  const inSSRSetup = isInSSRComponentSetup;
5024
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
5025
5206
  let awaitable = getAwaitable();
5026
5207
  setCurrentInstance(null, void 0);
5027
5208
  if (inSSRSetup) setInSSRSetupState(false);
5028
5209
  const restore = () => {
5029
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
5210
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
5030
5211
  setCurrentInstance(ctx);
5031
5212
  if (inSSRSetup) setInSSRSetupState(true);
5032
- const reset = restoreAsyncContext && restoreAsyncContext();
5033
- return () => {
5034
- if (reset) reset();
5035
- if (resetStoppedScope) resetStoppedScope.reset();
5036
- };
5213
+ return stoppedScope;
5037
5214
  };
5038
5215
  const cleanup = () => {
5039
5216
  setCurrentInstance(null, void 0);
5040
5217
  if (inSSRSetup) setInSSRSetupState(false);
5041
5218
  };
5042
5219
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
5043
- const reset = restore();
5220
+ const stoppedScope = restore();
5044
5221
  Promise.resolve().then(() => Promise.resolve().then(() => {
5045
- if (reset) reset();
5222
+ if (stoppedScope) stoppedScope.reset();
5046
5223
  cleanup();
5047
5224
  }));
5048
5225
  throw e;
5049
5226
  });
5050
5227
  return [awaitable, () => {
5051
- const reset = restore();
5228
+ const stoppedScope = restore();
5052
5229
  Promise.resolve().then(() => {
5053
- if (reset) reset();
5230
+ if (stoppedScope) stoppedScope.reset();
5054
5231
  cleanup();
5055
5232
  });
5056
5233
  }];
@@ -5078,9 +5255,11 @@ function applyOptions(instance) {
5078
5255
  shouldCacheAccess = true;
5079
5256
  if (computedOptions) for (const key in computedOptions) {
5080
5257
  const opt = computedOptions[key];
5258
+ const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
5259
+ const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP;
5081
5260
  const c = computed({
5082
- get: isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP,
5083
- set: !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : NOOP
5261
+ get,
5262
+ set
5084
5263
  });
5085
5264
  Object.defineProperty(ctx, key, {
5086
5265
  enumerable: true,
@@ -5139,9 +5318,10 @@ function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP)
5139
5318
  for (const key in injectOptions) {
5140
5319
  const opt = injectOptions[key];
5141
5320
  let injected;
5142
- if (isObject(opt)) if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5143
- else injected = inject(opt.from || key);
5144
- else injected = inject(opt);
5321
+ if (isObject(opt)) {
5322
+ if ("default" in opt) injected = inject(opt.from || key, opt.default, true);
5323
+ else injected = inject(opt.from || key);
5324
+ } else injected = inject(opt);
5145
5325
  if (/* @__PURE__ */ isRef(injected)) Object.defineProperty(ctx, key, {
5146
5326
  enumerable: true,
5147
5327
  configurable: true,
@@ -5160,7 +5340,8 @@ function createWatcher(raw, ctx, publicThis, key) {
5160
5340
  {
5161
5341
  const cur = getCurrentInstance();
5162
5342
  const instance = cur && getCurrentScope() === cur.scope ? cur : null;
5163
- if (isArray(getter()) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
5343
+ const newValue = getter();
5344
+ if (isArray(newValue) && isCompatEnabled$1("WATCH_ARRAY", instance)) options.deep = true;
5164
5345
  const baseGetter = getter;
5165
5346
  getter = () => {
5166
5347
  const val = baseGetter();
@@ -5172,10 +5353,12 @@ function createWatcher(raw, ctx, publicThis, key) {
5172
5353
  const handler = ctx[raw];
5173
5354
  if (isFunction(handler)) watch(getter, handler, options);
5174
5355
  } else if (isFunction(raw)) watch(getter, raw.bind(publicThis), options);
5175
- else if (isObject(raw)) if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5176
- else {
5177
- const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5178
- if (isFunction(handler)) watch(getter, handler, extend(raw, options));
5356
+ else if (isObject(raw)) {
5357
+ if (isArray(raw)) raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
5358
+ else {
5359
+ const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
5360
+ if (isFunction(handler)) watch(getter, handler, extend(raw, options));
5361
+ }
5179
5362
  }
5180
5363
  }
5181
5364
  /**
@@ -5190,12 +5373,13 @@ function resolveMergedOptions(instance) {
5190
5373
  const cached = cache.get(base);
5191
5374
  let resolved;
5192
5375
  if (cached) resolved = cached;
5193
- else if (!globalMixins.length && !mixins && !extendsOptions) if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
5194
- resolved = extend({}, base);
5195
- resolved.parent = instance.parent && instance.parent.proxy;
5196
- resolved.propsData = instance.vnode.props;
5197
- } else resolved = base;
5198
- else {
5376
+ else if (!globalMixins.length && !mixins && !extendsOptions) {
5377
+ if (isCompatEnabled$1("PRIVATE_APIS", instance)) {
5378
+ resolved = extend({}, base);
5379
+ resolved.parent = instance.parent && instance.parent.proxy;
5380
+ resolved.propsData = instance.vnode.props;
5381
+ } else resolved = base;
5382
+ } else {
5199
5383
  resolved = {};
5200
5384
  if (globalMixins.length) globalMixins.forEach((m) => mergeOptions(resolved, m, optionMergeStrategies, true));
5201
5385
  mergeOptions(resolved, base, optionMergeStrategies);
@@ -5267,7 +5451,7 @@ function mergeObjectOptions(to, from) {
5267
5451
  }
5268
5452
  function mergeEmitsOrPropsOptions(to, from) {
5269
5453
  if (to) {
5270
- if (isArray(to) && isArray(from)) return [...new Set([...to, ...from])];
5454
+ if (isArray(to) && isArray(from)) return [.../* @__PURE__ */ new Set([...to, ...from])];
5271
5455
  return extend(Object.create(null), normalizePropsOrEmits(to), normalizePropsOrEmits(from !== null && from !== void 0 ? from : {}));
5272
5456
  } else return from;
5273
5457
  }
@@ -5303,7 +5487,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5303
5487
  if (options.el) return vm.$mount(options.el);
5304
5488
  else return vm;
5305
5489
  }
5306
- Vue.version = `2.6.14-compat:3.6.0-rc.1`;
5490
+ Vue.version = `2.6.14-compat:3.6.0-rc.10`;
5307
5491
  Vue.config = singletonApp.config;
5308
5492
  Vue.use = (plugin, ...options) => {
5309
5493
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -5709,13 +5893,17 @@ function useModel(props, name, options = EMPTY_OBJ) {
5709
5893
  const modifiers = getModelModifiers(props, camelizedName, defaultPropGetter);
5710
5894
  const res = customRef((track, trigger) => {
5711
5895
  let localValue;
5896
+ let prevPropValue = EMPTY_OBJ;
5712
5897
  let prevSetValue = EMPTY_OBJ;
5713
5898
  let prevEmittedValue;
5714
5899
  watchSyncEffect(() => {
5715
5900
  const propValue = props[camelizedName];
5716
- if (hasChanged(localValue, propValue)) {
5717
- localValue = propValue;
5718
- trigger();
5901
+ if (hasChanged(prevPropValue, propValue)) {
5902
+ prevPropValue = propValue;
5903
+ if (hasChanged(localValue, propValue)) {
5904
+ localValue = propValue;
5905
+ trigger();
5906
+ }
5719
5907
  }
5720
5908
  });
5721
5909
  return {
@@ -5781,7 +5969,7 @@ function baseEmit(instance, props, getter, event, ...rawArgs) {
5781
5969
  const modifiers = isCompatModelListener ? props.modelModifiers : isModelListener && getModelModifiers(props, event.slice(7), getter);
5782
5970
  if (modifiers) {
5783
5971
  if (modifiers.trim) args = rawArgs.map((a) => isString(a) ? a.trim() : a);
5784
- if (modifiers.number) args = rawArgs.map(looseToNumber);
5972
+ if (modifiers.number) args = args.map(looseToNumber);
5785
5973
  }
5786
5974
  let handlerName;
5787
5975
  let handler = getter(props, handlerName = toHandlerKey(event)) || getter(props, handlerName = toHandlerKey(camelize(event)));
@@ -5894,7 +6082,7 @@ function renderComponentRoot(instance) {
5894
6082
  root = cloneVNode(root, null, false, true);
5895
6083
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
5896
6084
  }
5897
- if (vnode.transition) setTransitionHooks(root, vnode.transition);
6085
+ if (vnode.transition) setTransitionHooks(isTeleport(root.type) ? getInnerChild$1(root) || root : root, vnode.transition);
5898
6086
  result = root;
5899
6087
  setCurrentRenderingInstance(prev);
5900
6088
  return result;
@@ -5904,15 +6092,18 @@ function filterSingleRoot(children, recurse = true) {
5904
6092
  for (let i = 0; i < children.length; i++) {
5905
6093
  const child = children[i];
5906
6094
  if (isVNode(child)) {
5907
- if (child.type !== Comment || child.children === "v-if") if (singleRoot) return;
5908
- else singleRoot = child;
6095
+ if (child.type !== Comment || child.children === "v-if") {
6096
+ if (singleRoot) return;
6097
+ else singleRoot = child;
6098
+ }
5909
6099
  } else return;
5910
6100
  }
5911
6101
  return singleRoot;
5912
6102
  }
6103
+ const isFunctionalFallthroughKey = (key) => key === "class" || key === "style" || isOn(key);
5913
6104
  const getFunctionalFallthrough = (attrs) => {
5914
6105
  let res;
5915
- for (const key in attrs) if (key === "class" || key === "style" || isOn(key)) (res || (res = {}))[key] = attrs[key];
6106
+ for (const key in attrs) if (isFunctionalFallthroughKey(key)) (res || (res = {}))[key] = attrs[key];
5916
6107
  return res;
5917
6108
  };
5918
6109
  const filterModelListeners = (attrs, props) => {
@@ -6036,16 +6227,17 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
6036
6227
  let key = propsToUpdate[i];
6037
6228
  if (isEmitListener(instance.emitsOptions, key)) continue;
6038
6229
  const value = rawProps[key];
6039
- if (options) if (hasOwn(attrs, key)) {
6040
- if (value !== attrs[key]) {
6041
- attrs[key] = value;
6042
- hasAttrsChanged = true;
6230
+ if (options) {
6231
+ if (hasOwn(attrs, key)) {
6232
+ if (value !== attrs[key]) {
6233
+ attrs[key] = value;
6234
+ hasAttrsChanged = true;
6235
+ }
6236
+ } else {
6237
+ const camelizedKey = camelize(key);
6238
+ props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6043
6239
  }
6044
6240
  } else {
6045
- const camelizedKey = camelize(key);
6046
- props[camelizedKey] = resolvePropValue(options, camelizedKey, value, instance, baseResolveDefault);
6047
- }
6048
- else {
6049
6241
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
6050
6242
  else if (shouldSkipAttr(key, instance)) continue;
6051
6243
  if (value !== attrs[key]) {
@@ -6058,9 +6250,11 @@ function updateProps(instance, rawProps, rawPrevProps, optimized) {
6058
6250
  } else {
6059
6251
  if (setFullProps(instance, rawProps, props, attrs)) hasAttrsChanged = true;
6060
6252
  let kebabKey;
6061
- for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) if (options) {
6062
- if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6063
- } else delete props[key];
6253
+ for (const key in rawCurrentProps) if (!rawProps || !hasOwn(rawProps, key) && ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
6254
+ if (options) {
6255
+ if (rawPrevProps && (rawPrevProps[key] !== void 0 || rawPrevProps[kebabKey] !== void 0)) props[key] = resolvePropValue(options, key, void 0, instance, baseResolveDefault, true);
6256
+ } else delete props[key];
6257
+ }
6064
6258
  if (attrs !== rawCurrentProps) {
6065
6259
  for (const key in attrs) if (!rawProps || !hasOwn(rawProps, key) && !hasOwn(rawProps, key + "Native")) {
6066
6260
  delete attrs[key];
@@ -6080,9 +6274,10 @@ function setFullProps(instance, rawProps, props, attrs) {
6080
6274
  if (key === "inline-template") continue;
6081
6275
  const value = rawProps[key];
6082
6276
  let camelKey;
6083
- if (options && hasOwn(options, camelKey = camelize(key))) if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6084
- else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6085
- else if (!isEmitListener(instance.emitsOptions, key)) {
6277
+ if (options && hasOwn(options, camelKey = camelize(key))) {
6278
+ if (!needCastKeys || !needCastKeys.includes(camelKey)) props[camelKey] = value;
6279
+ else (rawCastValues || (rawCastValues = {}))[camelKey] = value;
6280
+ } else if (!isEmitListener(instance.emitsOptions, key)) {
6086
6281
  if (isOn(key) && key.endsWith("Native")) key = key.slice(0, -6);
6087
6282
  else if (shouldSkipAttr(key, instance)) continue;
6088
6283
  if (!(key in attrs) || value !== attrs[key]) {
@@ -6131,7 +6326,7 @@ function baseResolveDefault(factory, instance, key) {
6131
6326
  const prev = setCurrentInstance(instance);
6132
6327
  const props = /* @__PURE__ */ toRaw(instance.props);
6133
6328
  value = factory.call(isCompatEnabled$1("PROPS_DEFAULT_THIS", instance) ? createPropsDefaultThis(instance, props, key) : null, props);
6134
- setCurrentInstance(...prev);
6329
+ restoreCurrentInstance(prev);
6135
6330
  return value;
6136
6331
  }
6137
6332
  const mixinPropsCache = /* @__PURE__ */ new WeakMap();
@@ -6246,9 +6441,10 @@ const updateSlots = (instance, children, optimized) => {
6246
6441
  let deletionComparisonTarget = EMPTY_OBJ;
6247
6442
  if (vnode.shapeFlag & 32) {
6248
6443
  const type = children._;
6249
- if (type) if (optimized && type === 1) needDeletionCheck = false;
6250
- else assignSlots(slots, children, optimized);
6251
- else {
6444
+ if (type) {
6445
+ if (optimized && type === 1) needDeletionCheck = false;
6446
+ else assignSlots(slots, children, optimized);
6447
+ } else {
6252
6448
  needDeletionCheck = !children.$stable;
6253
6449
  normalizeObjectSlots(children, slots, instance);
6254
6450
  }
@@ -6308,6 +6504,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6308
6504
  optimized = false;
6309
6505
  n2.dynamicChildren = null;
6310
6506
  }
6507
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
6508
+ if (n2.dynamicChildren === EMPTY_ARR) n2.dynamicChildren = [];
6509
+ n2.dynamicChildren.hasOnce = true;
6510
+ }
6311
6511
  const { type, ref, shapeFlag } = n2;
6312
6512
  switch (type) {
6313
6513
  case Text:
@@ -6323,7 +6523,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6323
6523
  processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6324
6524
  break;
6325
6525
  case VaporSlot:
6326
- getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense);
6526
+ getVaporInterface(parentComponent, n2).slot(n1, n2, container, anchor, parentComponent, parentSuspense, slotScopeIds);
6327
6527
  break;
6328
6528
  default: if (shapeFlag & 1) processElement(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6329
6529
  else if (shapeFlag & 6) processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
@@ -6419,7 +6619,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6419
6619
  for (let i = 0; i < inheritedScopeIds.length; i++) hostSetScopeId(el, inheritedScopeIds[i]);
6420
6620
  };
6421
6621
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {
6422
- 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);
6622
+ for (let i = start; i < children.length; i++) {
6623
+ const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
6624
+ patch(null, child, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6625
+ }
6423
6626
  };
6424
6627
  const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6425
6628
  const el = n2.el = n1.el;
@@ -6430,6 +6633,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6430
6633
  let vnodeHook;
6431
6634
  parentComponent && toggleRecurse(parentComponent, false);
6432
6635
  if (vnodeHook = newProps.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6636
+ if (n2.ibu) n2.ibu();
6433
6637
  if (dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6434
6638
  parentComponent && toggleRecurse(parentComponent, true);
6435
6639
  if (dynamicChildren && (!n1.dynamicChildren || n1.dynamicChildren.length !== dynamicChildren.length)) {
@@ -6461,8 +6665,9 @@ function baseCreateRenderer(options, createHydrationFns) {
6461
6665
  if (n1.children !== n2.children) hostSetElementText(el, n2.children);
6462
6666
  }
6463
6667
  } else if (!optimized && dynamicChildren == null) patchProps(el, oldProps, newProps, parentComponent, namespace);
6464
- if ((vnodeHook = newProps.onVnodeUpdated) || dirs) queuePostRenderEffect(() => {
6668
+ if ((vnodeHook = newProps.onVnodeUpdated) || dirs || n2.iu) queuePostRenderEffect(() => {
6465
6669
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
6670
+ n2.iu && n2.iu();
6466
6671
  dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6467
6672
  }, void 0, parentSuspense);
6468
6673
  };
@@ -6470,7 +6675,8 @@ function baseCreateRenderer(options, createHydrationFns) {
6470
6675
  for (let i = 0; i < newChildren.length; i++) {
6471
6676
  const oldVNode = oldChildren[i];
6472
6677
  const newVNode = newChildren[i];
6473
- patch(oldVNode, newVNode, oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6678
+ const container = oldVNode.el && (oldVNode.type === Fragment || !isSameVNodeType(oldVNode, newVNode) || oldVNode.shapeFlag & 198) ? hostParentNode(oldVNode.el) : fallbackContainer;
6679
+ patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, namespace, slotScopeIds, true);
6474
6680
  }
6475
6681
  };
6476
6682
  const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {
@@ -6503,41 +6709,15 @@ function baseCreateRenderer(options, createHydrationFns) {
6503
6709
  };
6504
6710
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
6505
6711
  n2.slotScopeIds = slotScopeIds;
6506
- if (n2.type.__vapor) if (n1 == null) if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent);
6507
- else {
6508
- const vnodeBeforeMountHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeBeforeMount;
6509
- getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense, () => {
6510
- if (n2.dirs) {
6511
- invokeDirectiveHook(n2, null, parentComponent, "created");
6512
- invokeDirectiveHook(n2, null, parentComponent, "beforeMount");
6513
- }
6514
- }, () => {
6515
- if (vnodeBeforeMountHook) invokeVNodeHook(vnodeBeforeMountHook, parentComponent, n2);
6516
- });
6517
- if (n2.dirs) queuePostRenderEffect(() => invokeDirectiveHook(n2, null, parentComponent, "mounted"), void 0, parentSuspense);
6518
- const vnodeMountedHook = !isAsyncWrapper(n2) && n2.props && n2.props.onVnodeMounted;
6519
- if (vnodeMountedHook) {
6520
- const scopedVNode = n2;
6521
- queuePostRenderEffect(() => invokeVNodeHook(vnodeMountedHook, parentComponent, scopedVNode), void 0, parentSuspense);
6522
- }
6523
- }
6524
- else {
6525
- const shouldUpdate = shouldUpdateComponent(n1, n2, optimized);
6526
- getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdate, () => {
6527
- if (n2.dirs) invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
6528
- }, () => {
6529
- const vnodeBeforeUpdateHook = n2.props && n2.props.onVnodeBeforeUpdate;
6530
- if (vnodeBeforeUpdateHook) invokeVNodeHook(vnodeBeforeUpdateHook, parentComponent, n2, n1);
6531
- });
6532
- const vnodeUpdatedHook = n2.props && n2.props.onVnodeUpdated;
6533
- if (shouldUpdate && (vnodeUpdatedHook || n2.dirs)) queuePostRenderEffect(() => {
6534
- n2.dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
6535
- vnodeUpdatedHook && invokeVNodeHook(vnodeUpdatedHook, parentComponent, n2, n1);
6536
- }, void 0, parentSuspense);
6537
- }
6538
- else if (n1 == null) if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6539
- else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6540
- else updateComponent(n1, n2, optimized);
6712
+ if (n2.type.__vapor) {
6713
+ if (n1 == null) {
6714
+ if (n2.shapeFlag & 512) getVaporInterface(parentComponent, n2).activate(n2, container, anchor, parentComponent, parentSuspense);
6715
+ else getVaporInterface(parentComponent, n2).mount(n2, container, anchor, parentComponent, parentSuspense);
6716
+ } else getVaporInterface(parentComponent, n2).update(n1, n2, shouldUpdateComponent(n1, n2, optimized));
6717
+ } else if (n1 == null) {
6718
+ if (n2.shapeFlag & 512) parentComponent.ctx.activate(n2, container, anchor, namespace, optimized);
6719
+ else mountComponent(n2, container, anchor, parentComponent, parentSuspense, namespace, optimized);
6720
+ } else updateComponent(n1, n2, optimized);
6541
6721
  };
6542
6722
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {
6543
6723
  const compatMountInstance = initialVNode.isCompatRoot && initialVNode.component;
@@ -6569,14 +6749,16 @@ function baseCreateRenderer(options, createHydrationFns) {
6569
6749
  };
6570
6750
  const updateComponent = (n1, n2, optimized) => {
6571
6751
  const instance = n2.component = n1.component;
6572
- if (shouldUpdateComponent(n1, n2, optimized)) if (instance.asyncDep && !instance.asyncResolved) {
6573
- updateComponentPreRender(instance, n2, optimized);
6574
- return;
6752
+ if (shouldUpdateComponent(n1, n2, optimized)) {
6753
+ if (instance.asyncDep && !instance.asyncResolved) {
6754
+ n2.el = n1.el;
6755
+ updateComponentPreRender(instance, n2, optimized);
6756
+ return;
6757
+ } else {
6758
+ instance.next = n2;
6759
+ instance.effect.run();
6760
+ }
6575
6761
  } else {
6576
- instance.next = n2;
6577
- instance.effect.run();
6578
- }
6579
- else {
6580
6762
  n2.el = n1.el;
6581
6763
  instance.vnode = n2;
6582
6764
  }
@@ -6667,6 +6849,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6667
6849
  } else next = vnode;
6668
6850
  if (bu) invokeArrayFns(bu);
6669
6851
  if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) invokeVNodeHook(vnodeHook, parent, next, vnode);
6852
+ if (next.ibu) next.ibu();
6670
6853
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) instance.emit("hook:beforeUpdate");
6671
6854
  toggleRecurse(instance, true);
6672
6855
  const nextTree = renderComponentRoot(instance);
@@ -6676,7 +6859,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6676
6859
  next.el = nextTree.el;
6677
6860
  if (originNext === null) updateHOCHostEl(instance, nextTree.el);
6678
6861
  if (u) queuePostRenderEffect(u, void 0, parentSuspense);
6679
- if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
6862
+ if ((vnodeHook = next.props && next.props.onVnodeUpdated) || next.iu) queuePostRenderEffect(() => {
6863
+ vnodeHook && invokeVNodeHook(vnodeHook, parent, next, vnode);
6864
+ next.iu && next.iu();
6865
+ }, void 0, parentSuspense);
6680
6866
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:updated"), void 0, parentSuspense);
6681
6867
  }
6682
6868
  }
@@ -6715,9 +6901,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6715
6901
  if (shapeFlag & 8) {
6716
6902
  if (prevShapeFlag & 16) unmountChildren(c1, parentComponent, parentSuspense);
6717
6903
  if (c2 !== c1) hostSetElementText(container, c2);
6718
- } else if (prevShapeFlag & 16) if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6719
- else unmountChildren(c1, parentComponent, parentSuspense, true);
6720
- else {
6904
+ } else if (prevShapeFlag & 16) {
6905
+ if (shapeFlag & 16) patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6906
+ else unmountChildren(c1, parentComponent, parentSuspense, true);
6907
+ } else {
6721
6908
  if (prevShapeFlag & 8) hostSetElementText(container, "");
6722
6909
  if (shapeFlag & 16) mountChildren(c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6723
6910
  }
@@ -6813,15 +7000,17 @@ function baseCreateRenderer(options, createHydrationFns) {
6813
7000
  const anchorVNode = c2[nextIndex + 1];
6814
7001
  const anchor = nextIndex + 1 < l2 ? anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode) : parentAnchor;
6815
7002
  if (newIndexToOldIndexMap[i] === 0) patch(null, nextChild, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized);
6816
- else if (moved) if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
6817
- else j--;
7003
+ else if (moved) {
7004
+ if (j < 0 || i !== increasingNewIndexSequence[j]) move(nextChild, container, anchor, 2, parentComponent);
7005
+ else j--;
7006
+ }
6818
7007
  }
6819
7008
  }
6820
7009
  };
6821
7010
  const move = (vnode, container, anchor, moveType, parentComponent, parentSuspense = null) => {
6822
7011
  const { el, type, transition, children, shapeFlag } = vnode;
6823
7012
  if (isVaporComponent(type) || type === VaporSlot) {
6824
- getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType);
7013
+ getVaporInterface(parentComponent, vnode).move(vnode, container, anchor, moveType, parentSuspense);
6825
7014
  return;
6826
7015
  }
6827
7016
  if (shapeFlag & 6) {
@@ -6846,54 +7035,37 @@ function baseCreateRenderer(options, createHydrationFns) {
6846
7035
  moveStaticNode(vnode, container, anchor);
6847
7036
  return;
6848
7037
  }
6849
- if (moveType !== 2 && shapeFlag & 1 && transition) if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
6850
- else {
6851
- const { leave, delayLeave, afterLeave } = transition;
6852
- const remove = () => {
7038
+ if (moveType !== 2 && shapeFlag & 1 && transition) {
7039
+ if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7040
+ else performTransitionLeave(el, transition, () => {
6853
7041
  if (vnode.ctx.isUnmounted) hostRemove(el);
6854
7042
  else hostInsert(el, container, anchor);
6855
- };
6856
- const performLeave = () => {
6857
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
6858
- if (el._isLeaving) el[leaveCbKey](true);
6859
- if (transition.persisted && !wasLeaving) remove();
6860
- else leave(el, () => {
6861
- remove();
6862
- afterLeave && afterLeave();
6863
- });
6864
- };
6865
- if (delayLeave) delayLeave(el, remove, performLeave);
6866
- else performLeave();
6867
- }
6868
- else hostInsert(el, container, anchor);
7043
+ }, true, true);
7044
+ } else hostInsert(el, container, anchor);
6869
7045
  };
6870
7046
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
6871
7047
  const { type, props, ref, children, dynamicChildren, shapeFlag, patchFlag, dirs, cacheIndex, memo } = vnode;
6872
- if (patchFlag === -2) optimized = false;
7048
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) optimized = false;
6873
7049
  if (ref != null) {
6874
7050
  const prevSub = setActiveSub();
6875
7051
  setRef(ref, null, parentSuspense, vnode, true);
6876
7052
  setActiveSub(prevSub);
6877
7053
  }
6878
- if (cacheIndex != null) parentComponent.renderCache[cacheIndex] = void 0;
7054
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) parentComponent.renderCache[cacheIndex] = void 0;
6879
7055
  if (shapeFlag & 256) {
6880
- if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer());
7056
+ if (isVaporComponent(vnode.type)) getVaporInterface(parentComponent, vnode).deactivate(vnode, parentComponent.ctx.getStorageContainer(), parentSuspense);
6881
7057
  else parentComponent.ctx.deactivate(vnode);
6882
7058
  return;
6883
7059
  }
7060
+ if (shapeFlag & 6 && isVaporComponent(type)) {
7061
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
7062
+ return;
7063
+ }
6884
7064
  const shouldInvokeDirs = shapeFlag & 1 && dirs;
6885
7065
  const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
6886
7066
  let vnodeHook;
6887
7067
  if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) invokeVNodeHook(vnodeHook, parentComponent, vnode);
6888
- if (shapeFlag & 6) if (isVaporComponent(type)) {
6889
- if (dirs) invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
6890
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
6891
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || dirs) queuePostRenderEffect(() => {
6892
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
6893
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
6894
- }, void 0, parentSuspense);
6895
- return;
6896
- } else unmountComponent(vnode.component, parentSuspense, doRemove);
7068
+ if (shapeFlag & 6) unmountComponent(vnode.component, parentSuspense, doRemove);
6897
7069
  else {
6898
7070
  if (shapeFlag & 128) {
6899
7071
  vnode.suspense.unmount(parentSuspense, doRemove);
@@ -6904,7 +7076,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6904
7076
  else if (dynamicChildren && !dynamicChildren.hasOnce && (type !== Fragment || patchFlag > 0 && patchFlag & 64)) unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
6905
7077
  else if (type === Fragment && patchFlag & 384 || !optimized && shapeFlag & 16) unmountChildren(children, parentComponent, parentSuspense);
6906
7078
  if (type === VaporSlot) {
6907
- getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove);
7079
+ getVaporInterface(parentComponent, vnode).unmount(vnode, doRemove, parentSuspense);
6908
7080
  return;
6909
7081
  }
6910
7082
  if (doRemove) remove(vnode);
@@ -6924,6 +7096,7 @@ function baseCreateRenderer(options, createHydrationFns) {
6924
7096
  }
6925
7097
  if (type === Static) {
6926
7098
  removeStaticNode(vnode);
7099
+ if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
6927
7100
  return;
6928
7101
  }
6929
7102
  if (transition) performTransitionLeave(el, transition, () => hostRemove(el), !!(vnode.shapeFlag & 1));
@@ -6948,7 +7121,10 @@ function baseCreateRenderer(options, createHydrationFns) {
6948
7121
  if (effect) {
6949
7122
  effect.stop();
6950
7123
  unmount(subTree, instance, parentSuspense, doRemove);
6951
- } else if (doRemove && subTree && instance.vnode.el) remove(subTree);
7124
+ } else if (instance.vnode.el && subTree) {
7125
+ subTree.transition = instance.vnode.transition;
7126
+ unmount(subTree, instance, parentSuspense, doRemove);
7127
+ }
6952
7128
  if (um) queuePostRenderEffect(um, void 0, parentSuspense);
6953
7129
  if (isCompatEnabled$1("INSTANCE_EVENT_HOOKS", instance)) queuePostRenderEffect(() => instance.emit("hook:destroyed"), void 0, parentSuspense);
6954
7130
  queuePostRenderEffect(() => instance.isUnmounted = true, void 0, parentSuspense);
@@ -7017,12 +7193,14 @@ function resolveChildrenNamespace({ type, props }, currentNamespace) {
7017
7193
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
7018
7194
  }
7019
7195
  function toggleRecurse({ effect, job, vapor }, allowed) {
7020
- if (!vapor) if (allowed) {
7021
- effect.flags |= 128;
7022
- job.flags |= 2;
7023
- } else {
7024
- effect.flags &= -129;
7025
- job.flags &= -3;
7196
+ if (!vapor) {
7197
+ if (allowed) {
7198
+ effect.flags |= 128;
7199
+ job.flags |= 2;
7200
+ } else {
7201
+ effect.flags &= -129;
7202
+ job.flags &= -3;
7203
+ }
7026
7204
  }
7027
7205
  }
7028
7206
  function needTransition(parentSuspense, transition) {
@@ -7061,8 +7239,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
7061
7239
  }
7062
7240
  function locateNonHydratedAsyncRoot(instance) {
7063
7241
  const subComponent = instance.subTree && instance.subTree.component;
7064
- if (subComponent) if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7065
- else return locateNonHydratedAsyncRoot(subComponent);
7242
+ if (subComponent) {
7243
+ if (subComponent.asyncDep && !subComponent.asyncResolved) return subComponent;
7244
+ else return locateNonHydratedAsyncRoot(subComponent);
7245
+ }
7066
7246
  }
7067
7247
  function invalidateMount(hooks) {
7068
7248
  if (hooks) for (let i = 0; i < hooks.length; i++) hooks[i].flags |= 4;
@@ -7081,13 +7261,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
7081
7261
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
7082
7262
  const performRemove = () => {
7083
7263
  remove();
7084
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
7264
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
7085
7265
  };
7086
7266
  if (force || isElement && transition && !transition.persisted) {
7087
7267
  const { leave, delayLeave } = transition;
7088
7268
  const performLeave = () => {
7269
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7089
7270
  if (el._isLeaving && force) el[leaveCbKey](true);
7090
- leave(el, performRemove);
7271
+ if (force && transition.persisted && !wasLeaving) remove();
7272
+ else leave(el, performRemove);
7091
7273
  };
7092
7274
  if (delayLeave) delayLeave(el, performRemove, performLeave);
7093
7275
  else performLeave();
@@ -7103,7 +7285,7 @@ function isVaporComponent(type) {
7103
7285
  /**
7104
7286
  * shared between vdom and vapor
7105
7287
  */
7106
- function getInheritedScopeIds(vnode, parentComponent) {
7288
+ function getInheritedScopeIds(vnode, parentComponent, includeVaporRootIds = true) {
7107
7289
  const inheritedScopeIds = [];
7108
7290
  let currentParent = parentComponent;
7109
7291
  let currentVNode = vnode;
@@ -7118,6 +7300,8 @@ function getInheritedScopeIds(vnode, parentComponent) {
7118
7300
  currentParent = currentParent.parent;
7119
7301
  } else break;
7120
7302
  }
7303
+ const vaporScopeIds = includeVaporRootIds && currentVNode.vaporScopeIds;
7304
+ if (vaporScopeIds) inheritedScopeIds.push(...vaporScopeIds);
7121
7305
  return inheritedScopeIds;
7122
7306
  }
7123
7307
  function resolveAsyncComponentPlaceholder(anchorVnode) {
@@ -7136,7 +7320,7 @@ const Suspense = {
7136
7320
  process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {
7137
7321
  if (n1 == null) mountSuspense(n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals);
7138
7322
  else {
7139
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
7323
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
7140
7324
  n2.suspense = n1.suspense;
7141
7325
  n2.suspense.vnode = n2;
7142
7326
  n2.el = n1.el;
@@ -7174,10 +7358,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7174
7358
  if (pendingBranch) {
7175
7359
  suspense.pendingBranch = newBranch;
7176
7360
  if (isSameVNodeType(pendingBranch, newBranch)) {
7177
- patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7361
+ suspense.deps++;
7362
+ patch(pendingBranch, newBranch, isHydrating ? container : suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7363
+ suspense.deps--;
7178
7364
  if (suspense.deps <= 0) suspense.resolve();
7179
7365
  else if (isInFallback) {
7180
- if (!isHydrating) {
7366
+ if (!isHydrating && !suspense.isFallbackMountPending) {
7181
7367
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7182
7368
  setActiveBranch(suspense, newFallback);
7183
7369
  }
@@ -7189,12 +7375,16 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
7189
7375
  suspense.activeBranch = pendingBranch;
7190
7376
  } else unmount(pendingBranch, parentComponent, suspense);
7191
7377
  suspense.deps = 0;
7378
+ for (let i = 0; i < suspense.effects.length; i++) {
7379
+ const effect = suspense.effects[i];
7380
+ if (effect.flags & 8) queuePostFlushCb(effect);
7381
+ }
7192
7382
  suspense.effects.length = 0;
7193
7383
  suspense.hiddenContainer = createElement("div");
7194
7384
  if (isInFallback) {
7195
7385
  patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, namespace, slotScopeIds, optimized);
7196
7386
  if (suspense.deps <= 0) suspense.resolve();
7197
- else {
7387
+ else if (!suspense.isFallbackMountPending) {
7198
7388
  patch(activeBranch, newFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7199
7389
  setActiveBranch(suspense, newFallback);
7200
7390
  }
@@ -7287,7 +7477,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7287
7477
  let hasUnresolvedAncestor = false;
7288
7478
  while (parent) {
7289
7479
  if (parent.pendingBranch) {
7290
- parent.effects.push(...effects);
7480
+ for (let i = 0; i < effects.length; i++) parent.effects.push(effects[i]);
7291
7481
  hasUnresolvedAncestor = true;
7292
7482
  break;
7293
7483
  }
@@ -7297,6 +7487,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7297
7487
  suspense.effects = [];
7298
7488
  if (isSuspensible) {
7299
7489
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
7490
+ parentSuspenseId = void 0;
7300
7491
  parentSuspense.deps--;
7301
7492
  if (parentSuspense.deps === 0 && !sync) parentSuspense.resolve();
7302
7493
  }
@@ -7311,8 +7502,9 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7311
7502
  const mountFallback = () => {
7312
7503
  suspense.isFallbackMountPending = false;
7313
7504
  if (!suspense.isInFallback) return;
7314
- patch(null, fallbackVNode, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7315
- setActiveBranch(suspense, fallbackVNode);
7505
+ const latestFallback = suspense.vnode.ssFallback;
7506
+ patch(null, latestFallback, container, anchor, parentComponent, null, namespace, slotScopeIds, optimized);
7507
+ setActiveBranch(suspense, latestFallback);
7316
7508
  };
7317
7509
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
7318
7510
  if (delayEnter) {
@@ -7333,11 +7525,16 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
7333
7525
  registerDep(instance, onResolve) {
7334
7526
  const isInPendingSuspense = !!suspense.pendingBranch;
7335
7527
  if (isInPendingSuspense) suspense.deps++;
7528
+ const hydratedEl = instance.vnode && instance.vnode.el;
7336
7529
  instance.asyncDep.catch((err) => {
7337
7530
  handleError(err, instance, 0);
7338
7531
  }).then((asyncSetupResult) => {
7339
7532
  if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) return;
7340
7533
  setCurrentInstance(null, void 0);
7534
+ if (hydratedEl && !instance.scope.active) {
7535
+ if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
7536
+ return;
7537
+ }
7341
7538
  instance.asyncResolved = true;
7342
7539
  onResolve(asyncSetupResult);
7343
7540
  if (isInPendingSuspense && --suspense.deps === 0) suspense.resolve();
@@ -7384,9 +7581,10 @@ function normalizeSuspenseSlot(s) {
7384
7581
  return s;
7385
7582
  }
7386
7583
  function queueEffectWithSuspense(fn, id, suspense) {
7387
- if (suspense && suspense.pendingBranch) if (isArray(fn)) suspense.effects.push(...fn);
7388
- else suspense.effects.push(fn);
7389
- else queuePostFlushCb(fn, id);
7584
+ if (suspense && suspense.pendingBranch) {
7585
+ if (isArray(fn)) suspense.effects.push(...fn);
7586
+ else suspense.effects.push(fn);
7587
+ } else queuePostFlushCb(fn, id);
7390
7588
  }
7391
7589
  function setActiveBranch(suspense, branch) {
7392
7590
  suspense.activeBranch = branch;
@@ -7589,8 +7787,10 @@ function _createVNode(type, props = null, children = null, patchFlag = 0, dynami
7589
7787
  if (isVNode(type)) {
7590
7788
  const cloned = cloneVNode(type, props, true);
7591
7789
  if (children) normalizeChildren(cloned, children);
7592
- if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7593
- else currentBlock.push(cloned);
7790
+ if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
7791
+ if (cloned.shapeFlag & 6) currentBlock[currentBlock.indexOf(type)] = cloned;
7792
+ else currentBlock.push(cloned);
7793
+ }
7594
7794
  cloned.patchFlag = -2;
7595
7795
  return cloned;
7596
7796
  }
@@ -7647,7 +7847,10 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7647
7847
  ce: vnode.ce,
7648
7848
  vi: vnode.vi,
7649
7849
  vs: cloneVaporSlotMeta(vnode),
7650
- vb: vnode.vb
7850
+ vb: vnode.vb,
7851
+ ibu: vnode.ibu,
7852
+ iu: vnode.iu,
7853
+ cacheIndex: vnode.cacheIndex
7651
7854
  };
7652
7855
  if (transition && cloneTransition) setTransitionHooks(cloned, transition.clone(cloned));
7653
7856
  defineLegacyVNodeProperties(cloned);
@@ -7658,8 +7861,7 @@ function cloneVaporSlotMeta(vnode) {
7658
7861
  if (!vaporSlot) return vaporSlot;
7659
7862
  const cloned = {
7660
7863
  slot: vaporSlot.slot,
7661
- fallback: vaporSlot.fallback,
7662
- outletFallback: vaporSlot.outletFallback
7864
+ outlets: vaporSlot.outlets
7663
7865
  };
7664
7866
  if (vnode.el) {
7665
7867
  cloned.state = vaporSlot.state;
@@ -7702,25 +7904,28 @@ function normalizeChildren(vnode, children) {
7702
7904
  const { shapeFlag } = vnode;
7703
7905
  if (children == null) children = null;
7704
7906
  else if (isArray(children)) type = 16;
7705
- else if (typeof children === "object") if (shapeFlag & 65) {
7706
- const slot = children.default;
7707
- if (slot) {
7708
- slot._c && (slot._d = false);
7709
- normalizeChildren(vnode, slot());
7710
- slot._c && (slot._d = true);
7711
- }
7712
- return;
7713
- } else {
7714
- type = 32;
7715
- const slotFlag = children._;
7716
- if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7717
- else if (slotFlag === 3 && currentRenderingInstance) if (currentRenderingInstance.slots._ === 1) children._ = 1;
7718
- else {
7719
- children._ = 2;
7720
- vnode.patchFlag |= 1024;
7907
+ else if (typeof children === "object") {
7908
+ if (shapeFlag & 65) {
7909
+ const slot = children.default;
7910
+ if (slot) {
7911
+ slot._c && (slot._d = false);
7912
+ normalizeChildren(vnode, slot());
7913
+ slot._c && (slot._d = true);
7914
+ }
7915
+ return;
7916
+ } else {
7917
+ type = 32;
7918
+ const slotFlag = children._;
7919
+ if (!slotFlag && !isInternalObject(children)) children._ctx = currentRenderingInstance;
7920
+ else if (slotFlag === 3 && currentRenderingInstance) {
7921
+ if (currentRenderingInstance.slots._ === 1) children._ = 1;
7922
+ else {
7923
+ children._ = 2;
7924
+ vnode.patchFlag |= 1024;
7925
+ }
7926
+ }
7721
7927
  }
7722
- }
7723
- else if (isFunction(children)) {
7928
+ } else if (isFunction(children)) {
7724
7929
  if (shapeFlag & 65) {
7725
7930
  normalizeChildren(vnode, { default: children });
7726
7931
  return;
@@ -7797,6 +8002,16 @@ const setCurrentInstance = (instance, scope = instance !== null ? instance.scope
7797
8002
  simpleSetCurrentInstance(instance);
7798
8003
  }
7799
8004
  };
8005
+ /**
8006
+ * Restores a snapshot returned by {@link setCurrentInstance}. Unlike calling
8007
+ * `setCurrentInstance(...prev)`, an `undefined` saved scope is restored
8008
+ * verbatim instead of re-triggering the `instance.scope` default.
8009
+ * @internal
8010
+ */
8011
+ const restoreCurrentInstance = (prev) => {
8012
+ setCurrentScope(prev[1]);
8013
+ simpleSetCurrentInstance(prev[0]);
8014
+ };
7800
8015
  const internalOptions = [
7801
8016
  "ce",
7802
8017
  "type",
@@ -7822,7 +8037,7 @@ const useInstanceOption = (key, silent = false) => {
7822
8037
  };
7823
8038
  //#endregion
7824
8039
  //#region packages/runtime-core/src/component.ts
7825
- const emptyAppContext = /* @__PURE__ */ createAppContext();
8040
+ const emptyAppContext = /*@__PURE__*/ createAppContext();
7826
8041
  let uid = 0;
7827
8042
  function createComponentInstance(vnode, parent, suspense) {
7828
8043
  const type = vnode.type;
@@ -7925,7 +8140,7 @@ function setupStatefulComponent(instance, isSSR) {
7925
8140
  const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
7926
8141
  const isAsyncSetup = isPromise(setupResult);
7927
8142
  setActiveSub(prevSub);
7928
- setCurrentInstance(...prev);
8143
+ restoreCurrentInstance(prev);
7929
8144
  if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) markAsyncBoundary(instance);
7930
8145
  if (isAsyncSetup) {
7931
8146
  const unsetCurrentInstance = () => {
@@ -7933,7 +8148,12 @@ function setupStatefulComponent(instance, isSSR) {
7933
8148
  };
7934
8149
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
7935
8150
  if (isSSR) return setupResult.then((resolvedResult) => {
7936
- handleSetupResult(instance, resolvedResult, isSSR);
8151
+ setInSSRSetupState(true);
8152
+ try {
8153
+ handleSetupResult(instance, resolvedResult, isSSR);
8154
+ } finally {
8155
+ setInSSRSetupState(false);
8156
+ }
7937
8157
  }).catch((e) => {
7938
8158
  handleError(e, instance, 0);
7939
8159
  });
@@ -7942,9 +8162,10 @@ function setupStatefulComponent(instance, isSSR) {
7942
8162
  } else finishComponentSetup(instance, isSSR);
7943
8163
  }
7944
8164
  function handleSetupResult(instance, setupResult, isSSR) {
7945
- if (isFunction(setupResult)) if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
7946
- else instance.render = setupResult;
7947
- else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
8165
+ if (isFunction(setupResult)) {
8166
+ if (instance.type.__ssrInlineRender) instance.ssrRender = setupResult;
8167
+ else instance.render = setupResult;
8168
+ } else if (isObject(setupResult)) instance.setupState = proxyRefs(setupResult);
7948
8169
  finishComponentSetup(instance, isSSR);
7949
8170
  }
7950
8171
  let compile$1;
@@ -7988,7 +8209,7 @@ function finishComponentSetup(instance, isSSR, skipOptions) {
7988
8209
  applyOptions(instance);
7989
8210
  } finally {
7990
8211
  setActiveSub(prevSub);
7991
- setCurrentInstance(...prevInstance);
8212
+ restoreCurrentInstance(prevInstance);
7992
8213
  }
7993
8214
  }
7994
8215
  }
@@ -8014,14 +8235,13 @@ function getComponentPublicInstance(instance) {
8014
8235
  if (instance.exposed) return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
8015
8236
  get(target, key) {
8016
8237
  if (key in target) return target[key];
8017
- else {
8238
+ else if (!instance.vapor) {
8018
8239
  const publicPropertiesMap = getPublicPropertiesMap();
8019
8240
  if (key in publicPropertiesMap) return publicPropertiesMap[key](instance);
8020
8241
  }
8021
8242
  },
8022
8243
  has(target, key) {
8023
- const publicPropertiesMap = getPublicPropertiesMap();
8024
- return key in target || key in publicPropertiesMap;
8244
+ return key in target || !instance.vapor && key in getPublicPropertiesMap();
8025
8245
  }
8026
8246
  }));
8027
8247
  else return instance.proxy;
@@ -8043,11 +8263,12 @@ function h(type, propsOrChildren, children) {
8043
8263
  try {
8044
8264
  setBlockTracking(-1);
8045
8265
  const l = arguments.length;
8046
- if (l === 2) if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8047
- if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8048
- return createVNode(type, propsOrChildren);
8049
- } else return createVNode(type, null, propsOrChildren);
8050
- else {
8266
+ if (l === 2) {
8267
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
8268
+ if (isVNode(propsOrChildren)) return createVNode(type, null, [propsOrChildren]);
8269
+ return createVNode(type, propsOrChildren);
8270
+ } else return createVNode(type, null, propsOrChildren);
8271
+ } else {
8051
8272
  if (l > 3) children = Array.prototype.slice.call(arguments, 2);
8052
8273
  else if (l === 3 && isVNode(children)) children = [children];
8053
8274
  return createVNode(type, propsOrChildren, children);
@@ -8058,15 +8279,7 @@ function h(type, propsOrChildren, children) {
8058
8279
  }
8059
8280
  //#endregion
8060
8281
  //#region packages/runtime-core/src/customFormatter.ts
8061
- function initCustomFormatter() {
8062
- return;
8063
- function isKeyOfType(Comp, key, type) {
8064
- const opts = Comp[type];
8065
- if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) return true;
8066
- if (Comp.extends && isKeyOfType(Comp.extends, key, type)) return true;
8067
- if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) return true;
8068
- }
8069
- }
8282
+ function initCustomFormatter() {}
8070
8283
  //#endregion
8071
8284
  //#region packages/runtime-core/src/helpers/withMemo.ts
8072
8285
  function withMemo(memo, render, cache, index) {
@@ -8086,7 +8299,7 @@ function isMemoSame(cached, memo) {
8086
8299
  }
8087
8300
  //#endregion
8088
8301
  //#region packages/runtime-core/src/index.ts
8089
- const version = "3.6.0-rc.1";
8302
+ const version = "3.6.0-rc.10";
8090
8303
  const warn = NOOP;
8091
8304
  /**
8092
8305
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -8108,7 +8321,10 @@ const ssrUtils = {
8108
8321
  getComponentPublicInstance,
8109
8322
  ensureValidVNode,
8110
8323
  pushWarningContext,
8111
- popWarningContext
8324
+ popWarningContext,
8325
+ VaporSlot,
8326
+ rawVaporSlotKey,
8327
+ invokeSlotFallback
8112
8328
  };
8113
8329
  /**
8114
8330
  * @internal only exposed in compat builds
@@ -8130,13 +8346,13 @@ const DeprecationTypes = DeprecationTypes$1;
8130
8346
  let policy = void 0;
8131
8347
  const tt = typeof window !== "undefined" && window.trustedTypes;
8132
8348
  if (tt) try {
8133
- policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
8349
+ policy = /*@__PURE__*/ tt.createPolicy("vue", { createHTML: (val) => val });
8134
8350
  } catch (e) {}
8135
8351
  const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
8136
8352
  const svgNS = "http://www.w3.org/2000/svg";
8137
8353
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
8138
8354
  const doc = typeof document !== "undefined" ? document : null;
8139
- const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
8355
+ const templateContainer = doc && /*@__PURE__*/ doc.createElement("template");
8140
8356
  const nodeOps = {
8141
8357
  insert: (child, parent, anchor) => {
8142
8358
  parent.insertBefore(child, anchor || null);
@@ -8210,7 +8426,7 @@ const DOMTransitionPropsValidators = {
8210
8426
  leaveActiveClass: String,
8211
8427
  leaveToClass: String
8212
8428
  };
8213
- const TransitionPropsValidators = /* @__PURE__ */ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8429
+ const TransitionPropsValidators = /*@__PURE__*/ extend({}, BaseTransitionPropsValidators, DOMTransitionPropsValidators);
8214
8430
  /**
8215
8431
  * Wrap logic that attaches extra properties to Transition in a function
8216
8432
  * so that it can be annotated as pure
@@ -8225,7 +8441,7 @@ const decorate$1 = (t) => {
8225
8441
  * DOM Transition is a higher-order-component based on the platform-agnostic
8226
8442
  * base Transition component, with DOM-specific logic.
8227
8443
  */
8228
- const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8444
+ const Transition = /*@__PURE__*/ decorate$1((props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots));
8229
8445
  /**
8230
8446
  * #3227 Incoming hooks may be merged into arrays when wrapping Transition
8231
8447
  * with custom HOCs.
@@ -8463,14 +8679,15 @@ const vShow = {
8463
8679
  },
8464
8680
  updated(el, { value, oldValue }, { transition }) {
8465
8681
  if (!value === !oldValue) return;
8466
- if (transition) if (value) {
8467
- transition.beforeEnter(el);
8468
- setDisplay(el, true);
8469
- transition.enter(el);
8470
- } else transition.leave(el, () => {
8471
- setDisplay(el, false);
8472
- });
8473
- else setDisplay(el, value);
8682
+ if (transition) {
8683
+ if (value) {
8684
+ transition.beforeEnter(el);
8685
+ setDisplay(el, true);
8686
+ transition.enter(el);
8687
+ } else transition.leave(el, () => {
8688
+ setDisplay(el, false);
8689
+ });
8690
+ } else setDisplay(el, value);
8474
8691
  },
8475
8692
  beforeUnmount(el, { value }) {
8476
8693
  setDisplay(el, value);
@@ -8501,11 +8718,13 @@ function patchStyle(el, prev, next) {
8501
8718
  const isCssString = isString(next);
8502
8719
  let hasControlledDisplay = false;
8503
8720
  if (next && !isCssString) {
8504
- if (prev) if (!isString(prev)) {
8505
- for (const key in prev) if (next[key] == null) setStyle(style, key, "");
8506
- } else for (const prevStyle of prev.split(";")) {
8507
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
8508
- if (next[key] == null) setStyle(style, key, "");
8721
+ if (prev) {
8722
+ if (!isString(prev)) {
8723
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
8724
+ } else for (const prevStyle of prev.split(";")) {
8725
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
8726
+ if (next[key] == null) setStyle(style, key, "");
8727
+ }
8509
8728
  }
8510
8729
  for (const key in next) {
8511
8730
  if (key === "display") hasControlledDisplay = true;
@@ -8521,7 +8740,11 @@ function patchStyle(el, prev, next) {
8521
8740
  style.cssText = next;
8522
8741
  hasControlledDisplay = displayRE.test(next);
8523
8742
  }
8524
- } else if (prev) el.removeAttribute("style");
8743
+ } else if (prev) {
8744
+ const cssVarText = style[CSS_VAR_TEXT];
8745
+ if (cssVarText) style.cssText = cssVarText;
8746
+ else el.removeAttribute("style");
8747
+ }
8525
8748
  if (vShowOriginalDisplay in el) {
8526
8749
  el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
8527
8750
  if (el[vShowHidden]) style.display = "none";
@@ -8532,8 +8755,10 @@ function setStyle(style, name, rawVal) {
8532
8755
  if (isArray(rawVal)) rawVal.forEach((v) => setStyle(style, name, v));
8533
8756
  else {
8534
8757
  const val = rawVal == null ? "" : String(rawVal);
8535
- if (name.startsWith("--")) style.setProperty(name, val);
8536
- else {
8758
+ if (name.startsWith("--")) {
8759
+ if (importantRE.test(val)) style.setProperty(name, val.replace(importantRE, ""), "important");
8760
+ else style.setProperty(name, val);
8761
+ } else {
8537
8762
  const prefixed = autoPrefix(style, name);
8538
8763
  if (importantRE.test(val)) style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
8539
8764
  else style[prefixed] = val;
@@ -8570,15 +8795,16 @@ function shouldPreserveTextareaResizeStyle(el, key, prev, next) {
8570
8795
  //#region packages/runtime-dom/src/modules/attrs.ts
8571
8796
  const xlinkNS = "http://www.w3.org/1999/xlink";
8572
8797
  function patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {
8573
- if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
8574
- else el.setAttributeNS(xlinkNS, key, value);
8575
- else {
8798
+ if (isSVG && key.startsWith("xlink:")) {
8799
+ if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
8800
+ else el.setAttributeNS(xlinkNS, key, value);
8801
+ } else {
8576
8802
  if (compatCoerceAttr(el, key, value, instance)) return;
8577
8803
  if (value == null || isBoolean && !includeBooleanAttr(value)) el.removeAttribute(key);
8578
8804
  else el.setAttribute(key, isBoolean ? "" : isSymbol(value) ? String(value) : value);
8579
8805
  }
8580
8806
  }
8581
- const isEnumeratedAttr = /* @__PURE__ */ makeMap("contenteditable,draggable,spellcheck");
8807
+ const isEnumeratedAttr = /*@__PURE__*/ makeMap("contenteditable,draggable,spellcheck");
8582
8808
  function compatCoerceAttr(el, key, value, instance = null) {
8583
8809
  if (isEnumeratedAttr(key)) {
8584
8810
  const v2CoercedValue = value === void 0 ? null : value === null || value === false || value === "false" ? "false" : "true";
@@ -8667,7 +8893,7 @@ function parseEventName(name) {
8667
8893
  return [name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2)), options];
8668
8894
  }
8669
8895
  let cachedNow = 0;
8670
- const p = /* @__PURE__ */ Promise.resolve();
8896
+ const p = /*@__PURE__*/ Promise.resolve();
8671
8897
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
8672
8898
  function createInvoker(initialValue, instance) {
8673
8899
  const invoker = (e) => {
@@ -8730,7 +8956,7 @@ function shouldSetAsPropForVueCE(el, key) {
8730
8956
  //#endregion
8731
8957
  //#region packages/runtime-dom/src/apiCustomElement.ts
8732
8958
  const REMOVAL = {};
8733
- /* @__NO_SIDE_EFFECTS__ */
8959
+ /*@__NO_SIDE_EFFECTS__*/
8734
8960
  function defineCustomElement(options, extraOptions, _createApp) {
8735
8961
  let Comp = /* @__PURE__ */ defineComponent(options, extraOptions);
8736
8962
  if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
@@ -8779,12 +9005,14 @@ var VueElementBase = class VueElementBase extends BaseClass {
8779
9005
  this._parent = parent;
8780
9006
  break;
8781
9007
  }
8782
- if (!this._instance) if (this._resolved) this._mountComponent(this._def);
8783
- else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
8784
- this._pendingResolve = void 0;
8785
- this._resolveDef();
8786
- });
8787
- else this._resolveDef();
9008
+ if (!this._instance) {
9009
+ if (this._resolved) this._mountComponent(this._def);
9010
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
9011
+ this._pendingResolve = void 0;
9012
+ if (this.isConnected) return this._resolveDef();
9013
+ });
9014
+ else this._resolveDef();
9015
+ }
8788
9016
  }
8789
9017
  disconnectedCallback() {
8790
9018
  this._connected = false;
@@ -8818,7 +9046,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
8818
9046
  * resolve inner component definition (handle possible async component)
8819
9047
  */
8820
9048
  _resolveDef() {
8821
- if (this._pendingResolve) return;
9049
+ if (this._pendingResolve) return this._pendingResolve;
8822
9050
  for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
8823
9051
  this._ob = new MutationObserver(this._processMutations.bind(this));
8824
9052
  this._ob.observe(this, { attributes: true });
@@ -8847,6 +9075,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
8847
9075
  this._def = def;
8848
9076
  resolve(def);
8849
9077
  });
9078
+ return this._pendingResolve;
8850
9079
  } else resolve(this._def);
8851
9080
  }
8852
9081
  _mountComponent(def) {
@@ -8976,13 +9205,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
8976
9205
  _renderSlots() {
8977
9206
  const outlets = this._getSlots();
8978
9207
  const scopeId = this._instance.type.__scopeId;
8979
- const slotReplacements = /* @__PURE__ */ new Map();
8980
9208
  for (let i = 0; i < outlets.length; i++) {
8981
9209
  const o = outlets[i];
8982
9210
  const slotName = o.getAttribute("name") || "default";
8983
9211
  const content = this._slots[slotName];
8984
9212
  const parent = o.parentNode;
8985
- const replacementNodes = [];
8986
9213
  if (content) for (const n of content) {
8987
9214
  if (scopeId && n.nodeType === 1) {
8988
9215
  const id = scopeId + "-s";
@@ -8992,20 +9219,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
8992
9219
  while (child = walker.nextNode()) child.setAttribute(id, "");
8993
9220
  }
8994
9221
  parent.insertBefore(n, o);
8995
- replacementNodes.push(n);
8996
- }
8997
- else while (o.firstChild) {
8998
- const child = o.firstChild;
8999
- parent.insertBefore(child, o);
9000
- replacementNodes.push(child);
9001
9222
  }
9223
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
9002
9224
  parent.removeChild(o);
9003
- slotReplacements.set(o, {
9004
- nodes: replacementNodes,
9005
- usedFallback: !content
9006
- });
9007
9225
  }
9008
- this._updateSlotNodes(slotReplacements);
9009
9226
  }
9010
9227
  /**
9011
9228
  * @internal
@@ -9044,7 +9261,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
9044
9261
  * @internal
9045
9262
  */
9046
9263
  _hasShadowRoot() {
9047
- return this._def.shadowRoot !== false;
9264
+ return this._root !== this;
9048
9265
  }
9049
9266
  /**
9050
9267
  * @internal
@@ -9077,10 +9294,6 @@ var VueElement = class extends VueElementBase {
9077
9294
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
9078
9295
  this._app = this._instance = null;
9079
9296
  }
9080
- /**
9081
- * Only called when shadowRoot is false
9082
- */
9083
- _updateSlotNodes(replacements) {}
9084
9297
  _createVNode() {
9085
9298
  const baseProps = {};
9086
9299
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -9136,7 +9349,7 @@ const decorate = (t) => {
9136
9349
  };
9137
9350
  const TransitionGroup = /* @__PURE__ */ decorate({
9138
9351
  name: "TransitionGroup",
9139
- props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
9352
+ props: /*@__PURE__*/ extend({}, TransitionPropsValidators, {
9140
9353
  tag: String,
9141
9354
  moveClass: String
9142
9355
  }),
@@ -9267,13 +9480,22 @@ function onCompositionEnd(e) {
9267
9480
  }
9268
9481
  }
9269
9482
  const assignKey = Symbol("_assign");
9483
+ const initialValueKey = Symbol("_initialValue");
9270
9484
  const vModelText = {
9271
9485
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
9486
+ if (el.parentNode) {
9487
+ if (el.type === "text") el[initialValueKey] = el.defaultValue.replace(/[\r\n]/g, "");
9488
+ else if (el.type === "textarea") el[initialValueKey] = el.defaultValue.replace(/\r\n?/g, "\n");
9489
+ }
9272
9490
  el[assignKey] = getModelAssigner(vnode);
9273
9491
  vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
9274
9492
  },
9275
- mounted(el, { value }) {
9276
- el.value = value == null ? "" : value;
9493
+ mounted(el, { value, modifiers: { trim, number } }) {
9494
+ const newValue = value == null ? "" : value;
9495
+ const initialValue = el[initialValueKey];
9496
+ delete el[initialValueKey];
9497
+ if (initialValue !== void 0 && (el.type === "text" || el.type === "textarea") && el.value !== initialValue) el[assignKey](castValue(el.value, trim, number));
9498
+ else el.value = newValue;
9277
9499
  },
9278
9500
  beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
9279
9501
  el[assignKey] = getModelAssigner(vnode);
@@ -9408,37 +9630,58 @@ const vModelSelectInit = (el, value, number, set) => {
9408
9630
  el._modelValue = value;
9409
9631
  addEventListener(el, "change", () => {
9410
9632
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
9411
- (set || el[assignKey])(el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]);
9412
- el._assigning = true;
9413
- nextTick(() => {
9414
- el._assigning = false;
9415
- });
9633
+ const multiple = el.multiple;
9634
+ const assignedValue = multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0];
9635
+ const pending = el._pendingValue = [multiple, multiple ? isArray(assignedValue) ? selectedVal.slice() : selectedVal : assignedValue];
9636
+ try {
9637
+ (set || el[assignKey])(assignedValue);
9638
+ } finally {
9639
+ nextTick(() => {
9640
+ if (el._pendingValue === pending) el._pendingValue = void 0;
9641
+ });
9642
+ }
9416
9643
  });
9417
9644
  };
9645
+ function isSameSelectValue(value, assignedValue, multiple) {
9646
+ if (!multiple) return looseEqual(value, assignedValue);
9647
+ if (isArray(value)) return looseEqual(value, assignedValue);
9648
+ if (isSet(value)) {
9649
+ if (value.size !== assignedValue.length) return false;
9650
+ for (const item of assignedValue) if (!value.has(item)) return false;
9651
+ return true;
9652
+ }
9653
+ return false;
9654
+ }
9418
9655
  /**
9419
9656
  * @internal
9420
9657
  */
9421
9658
  const vModelSetSelected = (el, value) => {
9422
9659
  el._modelValue = value;
9423
- if (el._assigning) return;
9660
+ const pending = el._pendingValue;
9661
+ el._pendingValue = void 0;
9662
+ if (pending && pending[0] === el.multiple && isSameSelectValue(value, pending[1], pending[0])) return;
9663
+ setSelected(el, value);
9664
+ };
9665
+ function setSelected(el, value) {
9424
9666
  const isMultiple = el.multiple;
9425
9667
  const isArrayValue = isArray(value);
9426
9668
  if (isMultiple && !isArrayValue && !isSet(value)) return;
9427
9669
  for (let i = 0, l = el.options.length; i < l; i++) {
9428
9670
  const option = el.options[i];
9429
9671
  const optionValue = getValue(option);
9430
- if (isMultiple) if (isArrayValue) {
9431
- const optionType = typeof optionValue;
9432
- if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9433
- else option.selected = looseIndexOf(value, optionValue) > -1;
9434
- } else option.selected = value.has(optionValue);
9435
- else if (looseEqual(getValue(option), value)) {
9672
+ if (isMultiple) {
9673
+ if (isArrayValue) {
9674
+ const optionType = typeof optionValue;
9675
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
9676
+ else option.selected = looseIndexOf(value, optionValue) > -1;
9677
+ } else option.selected = value.has(optionValue);
9678
+ } else if (looseEqual(getValue(option), value)) {
9436
9679
  if (el.selectedIndex !== i) el.selectedIndex = i;
9437
9680
  return;
9438
9681
  }
9439
9682
  }
9440
9683
  if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
9441
- };
9684
+ }
9442
9685
  /**
9443
9686
  * @internal retrieve raw value set via :value bindings
9444
9687
  */
@@ -9751,7 +9994,7 @@ var src_exports = /* @__PURE__ */ __exportAll({
9751
9994
  withModifiers: () => withModifiers,
9752
9995
  withScopeId: () => withScopeId
9753
9996
  });
9754
- const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
9997
+ const rendererOptions = /*@__PURE__*/ extend({ patchProp }, nodeOps);
9755
9998
  let renderer;
9756
9999
  let enabledHydration = false;
9757
10000
  function ensureRenderer() {
@@ -10084,7 +10327,7 @@ function convertToBlock(node, { helper, removeHelper, inSSR }) {
10084
10327
  //#endregion
10085
10328
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
10086
10329
  var _a;
10087
- const decodeMap = new Map([
10330
+ const decodeMap = /* @__PURE__ */ new Map([
10088
10331
  [0, 65533],
10089
10332
  [128, 8364],
10090
10333
  [130, 8218],
@@ -10152,7 +10395,7 @@ function decodeBase64(input) {
10152
10395
  }
10153
10396
  //#endregion
10154
10397
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
10155
- const htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+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");
10398
+ const htmlDecodeTree = /* #__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
10156
10399
  //#endregion
10157
10400
  //#region node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
10158
10401
  /**
@@ -10546,7 +10789,7 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
10546
10789
  }
10547
10790
  return -1;
10548
10791
  }
10549
- const htmlDecoder = /* @__PURE__ */ getDecoder(htmlDecodeTree);
10792
+ const htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);
10550
10793
  /**
10551
10794
  * Decodes an HTML string.
10552
10795
  *
@@ -10738,13 +10981,14 @@ var Tokenizer = class {
10738
10981
  }
10739
10982
  }
10740
10983
  stateInterpolationOpen(c) {
10741
- if (c === this.delimiterOpen[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterOpen.length - 1) {
10742
- const start = this.index + 1 - this.delimiterOpen.length;
10743
- if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
10744
- this.state = 3;
10745
- this.sectionStart = start;
10746
- } else this.delimiterIndex++;
10747
- else if (this.inRCDATA) {
10984
+ if (c === this.delimiterOpen[this.delimiterIndex]) {
10985
+ if (this.delimiterIndex === this.delimiterOpen.length - 1) {
10986
+ const start = this.index + 1 - this.delimiterOpen.length;
10987
+ if (start > this.sectionStart) this.cbs.ontext(this.sectionStart, start);
10988
+ this.state = 3;
10989
+ this.sectionStart = start;
10990
+ } else this.delimiterIndex++;
10991
+ } else if (this.inRCDATA) {
10748
10992
  this.state = 32;
10749
10993
  this.stateInRCDATA(c);
10750
10994
  } else {
@@ -10760,13 +11004,14 @@ var Tokenizer = class {
10760
11004
  }
10761
11005
  }
10762
11006
  stateInterpolationClose(c) {
10763
- if (c === this.delimiterClose[this.delimiterIndex]) if (this.delimiterIndex === this.delimiterClose.length - 1) {
10764
- this.cbs.oninterpolation(this.sectionStart, this.index + 1);
10765
- if (this.inRCDATA) this.state = 32;
10766
- else this.state = 1;
10767
- this.sectionStart = this.index + 1;
10768
- } else this.delimiterIndex++;
10769
- else {
11007
+ if (c === this.delimiterClose[this.delimiterIndex]) {
11008
+ if (this.delimiterIndex === this.delimiterClose.length - 1) {
11009
+ this.cbs.oninterpolation(this.sectionStart, this.index + 1);
11010
+ if (this.inRCDATA) this.state = 32;
11011
+ else this.state = 1;
11012
+ this.sectionStart = this.index + 1;
11013
+ } else this.delimiterIndex++;
11014
+ } else {
10770
11015
  this.state = 3;
10771
11016
  this.stateInterpolation(c);
10772
11017
  }
@@ -10882,9 +11127,10 @@ var Tokenizer = class {
10882
11127
  this.sectionStart = this.index;
10883
11128
  if (this.mode === 0) this.state = 6;
10884
11129
  else if (this.inSFCRoot) this.state = 34;
10885
- else if (!this.inXML) if (c === 116) this.state = 30;
10886
- else this.state = c === 115 ? 29 : 6;
10887
- else this.state = 6;
11130
+ else if (!this.inXML) {
11131
+ if (c === 116) this.state = 30;
11132
+ else this.state = c === 115 ? 29 : 6;
11133
+ } else this.state = 6;
10888
11134
  } else if (c === 47) this.state = 8;
10889
11135
  else {
10890
11136
  this.state = 1;
@@ -11251,9 +11497,7 @@ var Tokenizer = class {
11251
11497
  case 24:
11252
11498
  this.stateInProcessingInstruction(c);
11253
11499
  break;
11254
- case 33:
11255
- this.stateInEntity();
11256
- break;
11500
+ case 33: this.stateInEntity();
11257
11501
  }
11258
11502
  this.index++;
11259
11503
  }
@@ -11286,9 +11530,10 @@ var Tokenizer = class {
11286
11530
  handleTrailingData() {
11287
11531
  const endIndex = this.buffer.length;
11288
11532
  if (this.sectionStart >= endIndex) return;
11289
- if (this.state === 28) if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
11290
- else this.cbs.oncomment(this.sectionStart, endIndex);
11291
- 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);
11533
+ if (this.state === 28) {
11534
+ if (this.currentSequence === Sequences.CdataEnd) this.cbs.oncdata(this.sectionStart, endIndex);
11535
+ else this.cbs.oncomment(this.sectionStart, endIndex);
11536
+ } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) {} else this.cbs.ontext(this.sectionStart, endIndex);
11292
11537
  }
11293
11538
  emitCodePoint(cp, consumed) {
11294
11539
  if (this.baseState !== 1 && this.baseState !== 32) {
@@ -11405,16 +11650,22 @@ function walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [
11405
11650
  const isRefed = isReferencedIdentifier(node, parent, parentStack);
11406
11651
  if (includeAll || isRefed && !isLocal) onIdentifier(node, parent, parentStack, isRefed, isLocal);
11407
11652
  } else if (node.type === "ObjectProperty" && (parent === null || parent === void 0 ? void 0 : parent.type) === "ObjectPattern") node.inPattern = true;
11408
- else if (isFunctionType(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11409
- else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
11410
- else if (node.type === "BlockStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11411
- else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
11412
- else if (node.type === "SwitchStatement") if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11413
- else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11414
- else if (node.type === "CatchClause" && node.param) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11415
- else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
11416
- else if (isForStatement(node)) if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11417
- else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11653
+ else if (isFunctionType(node)) {
11654
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11655
+ else walkFunctionParams(node, (id) => markScopeIdentifier(node, id, knownIds));
11656
+ } else if (node.type === "BlockStatement") {
11657
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11658
+ else walkBlockDeclarations(node, (id) => markScopeIdentifier(node, id, knownIds));
11659
+ } else if (node.type === "SwitchStatement") {
11660
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11661
+ else walkSwitchStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11662
+ } else if (node.type === "CatchClause" && node.param) {
11663
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11664
+ else for (const id of extractIdentifiers(node.param)) markScopeIdentifier(node, id, knownIds);
11665
+ } else if (isForStatement(node)) {
11666
+ if (node.scopeIds) node.scopeIds.forEach((id) => markKnownIds(id, knownIds));
11667
+ else walkForStatement(node, false, (id) => markScopeIdentifier(node, id, knownIds));
11668
+ }
11418
11669
  },
11419
11670
  leave(node, parent) {
11420
11671
  parent && parentStack.pop();
@@ -11506,9 +11757,7 @@ function extractIdentifiers(param, nodes = []) {
11506
11757
  case "RestElement":
11507
11758
  extractIdentifiers(param.argument, nodes);
11508
11759
  break;
11509
- case "AssignmentPattern":
11510
- extractIdentifiers(param.left, nodes);
11511
- break;
11760
+ case "AssignmentPattern": extractIdentifiers(param.left, nodes);
11512
11761
  }
11513
11762
  return nodes;
11514
11763
  }
@@ -11700,7 +11949,7 @@ function isTemplateNode(node) {
11700
11949
  function isSlotOutlet(node) {
11701
11950
  return node.type === 1 && node.tagType === 2;
11702
11951
  }
11703
- const propsHelperSet = new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
11952
+ const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
11704
11953
  function getUnnormalizedProps(props, callPath = []) {
11705
11954
  if (props && !isString(props) && props.type === 14) {
11706
11955
  const callee = props.callee;
@@ -11743,9 +11992,10 @@ function injectProp(node, prop, context) {
11743
11992
  propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [createObjectExpression([prop]), props]);
11744
11993
  if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) parentCall = callPath[callPath.length - 2];
11745
11994
  }
11746
- if (node.type === 13) if (parentCall) parentCall.arguments[0] = propsWithInjection;
11747
- else node.props = propsWithInjection;
11748
- else if (parentCall) parentCall.arguments[0] = propsWithInjection;
11995
+ if (node.type === 13) {
11996
+ if (parentCall) parentCall.arguments[0] = propsWithInjection;
11997
+ else node.props = propsWithInjection;
11998
+ } else if (parentCall) parentCall.arguments[0] = propsWithInjection;
11749
11999
  else node.arguments[2] = propsWithInjection;
11750
12000
  }
11751
12001
  function injectSlotKey(node, prop) {
@@ -11985,26 +12235,28 @@ const tokenizer = new Tokenizer(stack, {
11985
12235
  onattribend(quote, end) {
11986
12236
  if (currentOpenTag && currentProp) {
11987
12237
  setLocEnd(currentProp.loc, end);
11988
- if (quote !== 0) if (currentProp.type === 6) {
11989
- if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
11990
- if (quote === 1 && !currentAttrValue) emitError(13, end);
11991
- currentProp.value = {
11992
- type: 2,
11993
- content: currentAttrValue,
11994
- loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
11995
- };
11996
- if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
11997
- } else {
11998
- let expParseMode = 0;
11999
- if (currentProp.name === "for") expParseMode = 3;
12000
- else if (currentProp.name === "slot") expParseMode = 1;
12001
- else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
12002
- currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
12003
- if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
12004
- let syncIndex = -1;
12005
- 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)) {
12006
- currentProp.name = "model";
12007
- currentProp.modifiers.splice(syncIndex, 1);
12238
+ if (quote !== 0) {
12239
+ if (currentProp.type === 6) {
12240
+ if (currentProp.name === "class") currentAttrValue = condense(currentAttrValue).trim();
12241
+ if (quote === 1 && !currentAttrValue) emitError(13, end);
12242
+ currentProp.value = {
12243
+ type: 2,
12244
+ content: currentAttrValue,
12245
+ loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)
12246
+ };
12247
+ if (tokenizer.inSFCRoot && currentOpenTag.tag === "template" && currentProp.name === "lang" && currentAttrValue && currentAttrValue !== "html") tokenizer.enterRCDATA(toCharCodes(`</template`), 0);
12248
+ } else {
12249
+ let expParseMode = 0;
12250
+ if (currentProp.name === "for") expParseMode = 3;
12251
+ else if (currentProp.name === "slot") expParseMode = 1;
12252
+ else if (currentProp.name === "on" && currentAttrValue.includes(";")) expParseMode = 2;
12253
+ currentProp.exp = createExp(currentAttrValue, false, getLoc(currentAttrStartIndex, currentAttrEndIndex), 0, expParseMode);
12254
+ if (currentProp.name === "for") currentProp.forParseResult = parseForExpression(currentProp.exp);
12255
+ let syncIndex = -1;
12256
+ 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)) {
12257
+ currentProp.name = "model";
12258
+ currentProp.modifiers.splice(syncIndex, 1);
12259
+ }
12008
12260
  }
12009
12261
  }
12010
12262
  if (currentProp.type !== 7 || currentProp.name !== "pre") currentOpenTag.props.push(currentProp);
@@ -12047,10 +12299,7 @@ const tokenizer = new Tokenizer(stack, {
12047
12299
  case 18:
12048
12300
  case 19:
12049
12301
  case 20:
12050
- case 21:
12051
- emitError(9, end);
12052
- break;
12053
- default: break;
12302
+ case 21: emitError(9, end);
12054
12303
  }
12055
12304
  for (let index = 0; index < stack.length; index++) {
12056
12305
  onCloseTag(stack[index], end - 1);
@@ -12180,7 +12429,7 @@ function backTrack(index, c) {
12180
12429
  while (currentInput.charCodeAt(i) !== c && i >= 0) i--;
12181
12430
  return i;
12182
12431
  }
12183
- const specialTemplateDir = new Set([
12432
+ const specialTemplateDir = /* @__PURE__ */ new Set([
12184
12433
  "if",
12185
12434
  "else",
12186
12435
  "else-if",
@@ -12216,16 +12465,18 @@ function condenseWhitespace(nodes) {
12216
12465
  let removedWhitespace = false;
12217
12466
  for (let i = 0; i < nodes.length; i++) {
12218
12467
  const node = nodes[i];
12219
- if (node.type === 2) if (!inPre) {
12220
- if (isAllWhitespace(node.content)) {
12221
- const prev = nodes[i - 1] && nodes[i - 1].type;
12222
- const next = nodes[i + 1] && nodes[i + 1].type;
12223
- if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
12224
- removedWhitespace = true;
12225
- nodes[i] = null;
12226
- } else node.content = " ";
12227
- } else if (shouldCondense) node.content = condense(node.content);
12228
- } else node.content = node.content.replace(windowsNewlineRE, "\n");
12468
+ if (node.type === 2) {
12469
+ if (!inPre) {
12470
+ if (isAllWhitespace(node.content)) {
12471
+ const prev = nodes[i - 1] && nodes[i - 1].type;
12472
+ const next = nodes[i + 1] && nodes[i + 1].type;
12473
+ if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {
12474
+ removedWhitespace = true;
12475
+ nodes[i] = null;
12476
+ } else node.content = " ";
12477
+ } else if (shouldCondense) node.content = condense(node.content);
12478
+ } else node.content = node.content.replace(windowsNewlineRE, "\n");
12479
+ }
12229
12480
  }
12230
12481
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
12231
12482
  }
@@ -12502,7 +12753,7 @@ function getConstantType(node, context) {
12502
12753
  default: return 0;
12503
12754
  }
12504
12755
  }
12505
- const allowHoistedHelperSet = new Set([
12756
+ const allowHoistedHelperSet = /* @__PURE__ */ new Set([
12506
12757
  NORMALIZE_CLASS,
12507
12758
  NORMALIZE_STYLE,
12508
12759
  NORMALIZE_PROPS,
@@ -12546,7 +12797,7 @@ function getSelfName(filename) {
12546
12797
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
12547
12798
  return nameMatch ? capitalize(camelize(nameMatch[1])) : null;
12548
12799
  }
12549
- function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, eventDelegation = true, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
12800
+ function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic = false, hmr = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
12550
12801
  const context = {
12551
12802
  filename,
12552
12803
  selfName: getSelfName(filename),
@@ -12568,7 +12819,6 @@ function createTransformContext(root, { filename = "", prefixIdentifiers = false
12568
12819
  bindingMetadata,
12569
12820
  inline,
12570
12821
  isTS,
12571
- eventDelegation,
12572
12822
  onError,
12573
12823
  onWarn,
12574
12824
  compatConfig,
@@ -12674,7 +12924,7 @@ function transform(root, options) {
12674
12924
  traverseNode(root, context);
12675
12925
  if (options.hoistStatic) cacheStatic(root, context);
12676
12926
  if (!options.ssr) createRootCodegen(root, context);
12677
- root.helpers = new Set([...context.helpers.keys()]);
12927
+ root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
12678
12928
  root.components = [...context.components];
12679
12929
  root.directives = [...context.directives];
12680
12930
  root.imports = context.imports;
@@ -12717,8 +12967,10 @@ function traverseNode(node, context) {
12717
12967
  const exitFns = [];
12718
12968
  for (let i = 0; i < nodeTransforms.length; i++) {
12719
12969
  const onExit = nodeTransforms[i](node, context);
12720
- if (onExit) if (isArray(onExit)) exitFns.push(...onExit);
12721
- else exitFns.push(onExit);
12970
+ if (onExit) {
12971
+ if (isArray(onExit)) exitFns.push(...onExit);
12972
+ else exitFns.push(onExit);
12973
+ }
12722
12974
  if (!context.currentNode) return;
12723
12975
  else node = context.currentNode;
12724
12976
  }
@@ -12735,9 +12987,7 @@ function traverseNode(node, context) {
12735
12987
  case 10:
12736
12988
  case 11:
12737
12989
  case 1:
12738
- case 0:
12739
- traverseChildren(node, context);
12740
- break;
12990
+ case 0: traverseChildren(node, context);
12741
12991
  }
12742
12992
  context.currentNode = node;
12743
12993
  let i = exitFns.length;
@@ -12923,16 +13173,18 @@ function genFunctionPreamble(ast, context) {
12923
13173
  const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
12924
13174
  const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;
12925
13175
  const helpers = Array.from(ast.helpers);
12926
- if (helpers.length > 0) if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
12927
- else {
12928
- push(`const _Vue = ${VueBinding}\n`, -1);
12929
- if (ast.hoists.length) push(`const { ${[
12930
- CREATE_VNODE,
12931
- CREATE_ELEMENT_VNODE,
12932
- CREATE_COMMENT,
12933
- CREATE_TEXT,
12934
- CREATE_STATIC
12935
- ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
13176
+ if (helpers.length > 0) {
13177
+ if (prefixIdentifiers) push(`const { ${helpers.map(aliasHelper).join(", ")} } = ${VueBinding}\n`, -1);
13178
+ else {
13179
+ push(`const _Vue = ${VueBinding}\n`, -1);
13180
+ if (ast.hoists.length) push(`const { ${[
13181
+ CREATE_VNODE,
13182
+ CREATE_ELEMENT_VNODE,
13183
+ CREATE_COMMENT,
13184
+ CREATE_TEXT,
13185
+ CREATE_STATIC
13186
+ ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ")} } = _Vue\n`, -1);
13187
+ }
12936
13188
  }
12937
13189
  if (ast.ssrHelpers && ast.ssrHelpers.length) push(`const { ${ast.ssrHelpers.map(aliasHelper).join(", ")} } = require("${ssrRuntimeModuleName}")\n`, -1);
12938
13190
  genHoists(ast.hoists, context);
@@ -13009,10 +13261,12 @@ function genNodeList(nodes, context, multilines = false, comma = true) {
13009
13261
  if (isString(node)) push(node, -3);
13010
13262
  else if (isArray(node)) genNodeListAsArray(node, context);
13011
13263
  else genNode(node, context);
13012
- if (i < nodes.length - 1) if (multilines) {
13013
- comma && push(",");
13014
- newline();
13015
- } else comma && push(", ");
13264
+ if (i < nodes.length - 1) {
13265
+ if (multilines) {
13266
+ comma && push(",");
13267
+ newline();
13268
+ } else comma && push(", ");
13269
+ }
13016
13270
  }
13017
13271
  }
13018
13272
  function genNode(node, context) {
@@ -13084,12 +13338,7 @@ function genNode(node, context) {
13084
13338
  case 25:
13085
13339
  genSequenceExpression(node, context);
13086
13340
  break;
13087
- case 26:
13088
- genReturnStatement(node, context);
13089
- break;
13090
- /* v8 ignore start */
13091
- case 10: break;
13092
- default:
13341
+ case 26: genReturnStatement(node, context);
13093
13342
  }
13094
13343
  }
13095
13344
  function genText(node, context) {
@@ -13327,7 +13576,7 @@ function genReturnStatement({ returns }, context) {
13327
13576
  }
13328
13577
  //#endregion
13329
13578
  //#region packages/compiler-core/src/transforms/transformExpression.ts
13330
- const isLiteralWhitelisted = /* @__PURE__ */ makeMap("true,false,null,this");
13579
+ const isLiteralWhitelisted = /*@__PURE__*/ makeMap("true,false,null,this");
13331
13580
  const transformExpression = (node, context) => {
13332
13581
  if (node.type === 5) node.content = processExpression(node.content, context);
13333
13582
  else if (node.type === 1) {
@@ -13360,20 +13609,21 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
13360
13609
  if (isConst(type) || type === "setup-reactive-const" || localVars[raw]) return raw;
13361
13610
  else if (type === "setup-ref") return `${raw}.value`;
13362
13611
  else if (type === "setup-maybe-ref") return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);
13363
- else if (type === "setup-let") if (isAssignmentLVal) {
13364
- const { right: rVal, operator } = parent;
13365
- const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
13366
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
13367
- } else if (isUpdateArg) {
13368
- id.start = parent.start;
13369
- id.end = parent.end;
13370
- const { prefix: isPrefix, operator } = parent;
13371
- const prefix = isPrefix ? operator : ``;
13372
- const postfix = isPrefix ? `` : operator;
13373
- return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
13374
- } else if (isDestructureAssignment) return raw;
13375
- else return wrapWithUnref(raw);
13376
- else if (type === "props") return genPropsAccessExp(raw);
13612
+ else if (type === "setup-let") {
13613
+ if (isAssignmentLVal) {
13614
+ const { right: rVal, operator } = parent;
13615
+ const rExpString = stringifyExpression(processExpression(createSimpleExpression(rawExp.slice(rVal.start - 1, rVal.end - 1), false), context, false, false, knownIds));
13616
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;
13617
+ } else if (isUpdateArg) {
13618
+ id.start = parent.start;
13619
+ id.end = parent.end;
13620
+ const { prefix: isPrefix, operator } = parent;
13621
+ const prefix = isPrefix ? operator : ``;
13622
+ const postfix = isPrefix ? `` : operator;
13623
+ return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;
13624
+ } else if (isDestructureAssignment) return raw;
13625
+ else return wrapWithUnref(raw);
13626
+ } else if (type === "props") return genPropsAccessExp(raw);
13377
13627
  else if (type === "props-aliased") return genPropsAccessExp(bindingMetadata.__propsAliases[raw]);
13378
13628
  } else if (type && type.startsWith("setup") || type === "literal-const") return `$setup.${raw}`;
13379
13629
  else if (type === "props-aliased") return `$props['${bindingMetadata.__propsAliases[raw]}']`;
@@ -13390,8 +13640,10 @@ function processExpression(node, context, asParams = false, asRawStatements = fa
13390
13640
  if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {
13391
13641
  if (isConst(bindingMetadata[rawExp])) node.constType = 1;
13392
13642
  node.content = rewriteIdentifier(rawExp);
13393
- } else if (!isScopeVarReference) if (isLiteral) node.constType = 3;
13394
- else node.constType = 2;
13643
+ } else if (!isScopeVarReference) {
13644
+ if (isLiteral) node.constType = 3;
13645
+ else node.constType = 2;
13646
+ }
13395
13647
  return node;
13396
13648
  }
13397
13649
  if (!ast) {
@@ -13547,12 +13799,13 @@ function createChildrenCodegenNode(branch, keyIndex, context) {
13547
13799
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(`${keyIndex}`, false, locStub, 2));
13548
13800
  const { children } = branch;
13549
13801
  const firstChild = children[0];
13550
- if (children.length !== 1 || firstChild.type !== 1) if (children.length === 1 && firstChild.type === 11) {
13551
- const vnodeCall = firstChild.codegenNode;
13552
- injectProp(vnodeCall, keyProperty, context);
13553
- return vnodeCall;
13554
- } else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
13555
- else {
13802
+ if (children.length !== 1 || firstChild.type !== 1) {
13803
+ if (children.length === 1 && firstChild.type === 11) {
13804
+ const vnodeCall = firstChild.codegenNode;
13805
+ injectProp(vnodeCall, keyProperty, context);
13806
+ return vnodeCall;
13807
+ } else return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, 64, void 0, void 0, true, false, false, branch.loc);
13808
+ } else {
13556
13809
  const ret = firstChild.codegenNode;
13557
13810
  const vnodeCall = getMemoedVNodeCall(ret);
13558
13811
  if (vnodeCall.type === 13) convertToBlock(vnodeCall, context);
@@ -13573,9 +13826,10 @@ function isSameKey(a, b) {
13573
13826
  return true;
13574
13827
  }
13575
13828
  function getParentCondition(node) {
13576
- while (true) if (node.type === 19) if (node.alternate.type === 19) node = node.alternate;
13577
- else return node;
13578
- else if (node.type === 20) node = node.value;
13829
+ while (true) if (node.type === 19) {
13830
+ if (node.alternate.type === 19) node = node.alternate;
13831
+ else return node;
13832
+ } else if (node.type === 20) node = node.value;
13579
13833
  }
13580
13834
  //#endregion
13581
13835
  //#region packages/compiler-core/src/transforms/vFor.ts
@@ -13618,15 +13872,24 @@ const transformFor = createStructuralDirectiveTransform("for", (node, dir, conte
13618
13872
  else {
13619
13873
  childBlock = children[0].codegenNode;
13620
13874
  if (isTemplate && keyProperty) injectProp(childBlock, keyProperty, context);
13621
- if (childBlock.isBlock !== !isStableFragment) if (childBlock.isBlock) {
13622
- removeHelper(OPEN_BLOCK);
13623
- removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13624
- } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13625
- childBlock.isBlock = !isStableFragment;
13875
+ const shouldUseBlock = !isStableFragment || childBlock.isBlockRequired === true;
13876
+ if (childBlock.isBlock !== shouldUseBlock) {
13877
+ if (childBlock.isBlock) {
13878
+ removeHelper(OPEN_BLOCK);
13879
+ removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13880
+ } else removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13881
+ }
13882
+ childBlock.isBlock = shouldUseBlock;
13626
13883
  if (childBlock.isBlock) {
13627
13884
  helper(OPEN_BLOCK);
13628
13885
  helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
13629
- } else helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13886
+ } else {
13887
+ helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
13888
+ if (childBlock.needsPatch) {
13889
+ var _childBlock$patchFlag;
13890
+ childBlock.patchFlag = ((_childBlock$patchFlag = childBlock.patchFlag) !== null && _childBlock$patchFlag !== void 0 ? _childBlock$patchFlag : 0) | 512;
13891
+ }
13892
+ }
13630
13893
  }
13631
13894
  if (memo) {
13632
13895
  const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [createSimpleExpression(`_cached`)]));
@@ -13832,8 +14095,10 @@ function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
13832
14095
  return createObjectProperty(`default`, fn);
13833
14096
  };
13834
14097
  if (!hasTemplateSlots) slotsProperties.push(buildDefaultSlotProperty(void 0, children));
13835
- else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
13836
- else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
14098
+ else if (implicitDefaultChildren.length && !implicitDefaultChildren.every(isWhitespaceText)) {
14099
+ if (hasNamedDefaultSlot) context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
14100
+ else slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
14101
+ }
13837
14102
  }
13838
14103
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
13839
14104
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(`_`, createSimpleExpression(slotFlag + ``, false))), loc);
@@ -13859,10 +14124,7 @@ function hasForwardedSlots(children) {
13859
14124
  if (hasForwardedSlots(child.branches)) return true;
13860
14125
  break;
13861
14126
  case 10:
13862
- case 11:
13863
- if (hasForwardedSlots(child.children)) return true;
13864
- break;
13865
- default: break;
14127
+ case 11: if (hasForwardedSlots(child.children)) return true;
13866
14128
  }
13867
14129
  }
13868
14130
  return false;
@@ -13884,12 +14146,16 @@ const transformElement = (node, context) => {
13884
14146
  let vnodeDynamicProps;
13885
14147
  let dynamicPropNames;
13886
14148
  let vnodeDirectives;
14149
+ let needsPatch = false;
14150
+ let isBlockRequired = false;
13887
14151
  let shouldUseBlock = isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && (tag === "svg" || tag === "foreignObject" || tag === "math");
13888
14152
  if (props.length > 0) {
13889
14153
  const propsBuildResult = buildProps(node, context, void 0, isComponent, isDynamicComponent);
13890
14154
  vnodeProps = propsBuildResult.props;
13891
14155
  patchFlag = propsBuildResult.patchFlag;
13892
14156
  dynamicPropNames = propsBuildResult.dynamicPropNames;
14157
+ needsPatch = propsBuildResult.needsPatch;
14158
+ isBlockRequired = propsBuildResult.isBlockRequired;
13893
14159
  const directives = propsBuildResult.directives;
13894
14160
  vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
13895
14161
  if (propsBuildResult.shouldUseBlock) shouldUseBlock = true;
@@ -13913,7 +14179,10 @@ const transformElement = (node, context) => {
13913
14179
  } else vnodeChildren = node.children;
13914
14180
  }
13915
14181
  if (dynamicPropNames && dynamicPropNames.length) vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
13916
- node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
14182
+ const vnodeCall = node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, patchFlag === 0 ? void 0 : patchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent, node.loc);
14183
+ needsPatch = needsPatch && (patchFlag === 0 || patchFlag === 32);
14184
+ if (needsPatch) vnodeCall.needsPatch = true;
14185
+ if (isBlockRequired) vnodeCall.isBlockRequired = true;
13917
14186
  };
13918
14187
  };
13919
14188
  function resolveComponentType(node, context, ssr = false) {
@@ -13998,6 +14267,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
13998
14267
  const runtimeDirectives = [];
13999
14268
  const hasChildren = children.length > 0;
14000
14269
  let shouldUseBlock = false;
14270
+ let isBlockRequired = false;
14001
14271
  let patchFlag = 0;
14002
14272
  let hasRef = false;
14003
14273
  let hasClassBinding = false;
@@ -14022,12 +14292,12 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14022
14292
  const isEventHandler = isOn(name);
14023
14293
  if (isEventHandler && (!isComponent || isDynamicComponent) && name.toLowerCase() !== "onclick" && name !== "onUpdate:modelValue" && !isReservedProp(name)) hasHydrationEventBinding = true;
14024
14294
  if (isEventHandler && isReservedProp(name)) hasVnodeHook = true;
14295
+ if (name === "ref") hasRef = true;
14025
14296
  if (isEventHandler && value.type === 14) value = value.arguments[0];
14026
14297
  if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) return;
14027
- if (name === "ref") hasRef = true;
14028
- else if (name === "class") hasClassBinding = true;
14298
+ if (name === "class") hasClassBinding = true;
14029
14299
  else if (name === "style") hasStyleBinding = true;
14030
- else if (name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
14300
+ else if (name !== "ref" && name !== "key" && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
14031
14301
  if (isComponent && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) dynamicPropNames.push(name);
14032
14302
  } else hasDynamicKeys = true;
14033
14303
  };
@@ -14060,26 +14330,31 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14060
14330
  if (name === "once" || name === "memo") continue;
14061
14331
  if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) continue;
14062
14332
  if (isVOn && ssr) continue;
14063
- if (isVBind && isStaticArgOf(arg, "key") || isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")) shouldUseBlock = true;
14333
+ if (isVBind && isStaticArgOf(arg, "key")) shouldUseBlock = true;
14334
+ if (isVOn && hasChildren && arg && isStaticExp(arg) && camelize(arg.content) === "vue:beforeUpdate") {
14335
+ shouldUseBlock = true;
14336
+ isBlockRequired = true;
14337
+ }
14064
14338
  if (isVBind && isStaticArgOf(arg, "ref")) pushRefVForMarker();
14065
14339
  if (!arg && (isVBind || isVOn)) {
14066
14340
  hasDynamicKeys = true;
14067
- if (exp) if (isVBind) {
14068
- pushMergeArg();
14069
- if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
14070
- mergeArgs.unshift(exp);
14071
- continue;
14072
- }
14073
- pushRefVForMarker();
14074
- pushMergeArg();
14075
- mergeArgs.push(exp);
14076
- } else pushMergeArg({
14077
- type: 14,
14078
- loc,
14079
- callee: context.helper(TO_HANDLERS),
14080
- arguments: isComponent ? [exp] : [exp, `true`]
14081
- });
14082
- else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
14341
+ if (exp) {
14342
+ if (isVBind) {
14343
+ pushMergeArg();
14344
+ if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
14345
+ mergeArgs.unshift(exp);
14346
+ continue;
14347
+ }
14348
+ pushRefVForMarker();
14349
+ pushMergeArg();
14350
+ mergeArgs.push(exp);
14351
+ } else pushMergeArg({
14352
+ type: 14,
14353
+ loc,
14354
+ callee: context.helper(TO_HANDLERS),
14355
+ arguments: isComponent ? [exp] : [exp, `true`]
14356
+ });
14357
+ } else context.onError(createCompilerError(isVBind ? 34 : 35, loc));
14083
14358
  continue;
14084
14359
  }
14085
14360
  if (isVBind && modifiers.some((mod) => mod.content === "prop")) patchFlag |= 32;
@@ -14095,7 +14370,10 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14095
14370
  }
14096
14371
  } else if (!isBuiltInDirective(name)) {
14097
14372
  runtimeDirectives.push(prop);
14098
- if (hasChildren) shouldUseBlock = true;
14373
+ if (hasChildren) {
14374
+ shouldUseBlock = true;
14375
+ isBlockRequired = true;
14376
+ }
14099
14377
  }
14100
14378
  }
14101
14379
  }
@@ -14112,7 +14390,8 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14112
14390
  if (dynamicPropNames.length) patchFlag |= 8;
14113
14391
  if (hasHydrationEventBinding) patchFlag |= 32;
14114
14392
  }
14115
- if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) patchFlag |= 512;
14393
+ const needsPatch = (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0);
14394
+ if (!shouldUseBlock && needsPatch) patchFlag |= 512;
14116
14395
  if (!context.inSSR && propsExpression) switch (propsExpression.type) {
14117
14396
  case 15:
14118
14397
  let classKeyIndex = -1;
@@ -14133,16 +14412,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
14133
14412
  } else propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
14134
14413
  break;
14135
14414
  case 14: break;
14136
- default:
14137
- propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
14138
- break;
14415
+ default: propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [propsExpression])]);
14139
14416
  }
14140
14417
  return {
14141
14418
  props: propsExpression,
14142
14419
  directives: runtimeDirectives,
14143
14420
  patchFlag,
14144
14421
  dynamicPropNames,
14145
- shouldUseBlock
14422
+ shouldUseBlock,
14423
+ needsPatch,
14424
+ isBlockRequired
14146
14425
  };
14147
14426
  }
14148
14427
  function dedupeProperties(properties) {
@@ -14243,10 +14522,12 @@ function processSlotOutlet(node, context) {
14243
14522
  for (let i = 0; i < node.props.length; i++) {
14244
14523
  const p = node.props[i];
14245
14524
  if (p.type === 6) {
14246
- if (p.value) if (p.name === "name") slotName = JSON.stringify(p.value.content);
14247
- else {
14248
- p.name = camelize(p.name);
14249
- nonNameProps.push(p);
14525
+ if (p.value) {
14526
+ if (p.name === "name") slotName = JSON.stringify(p.value.content);
14527
+ else {
14528
+ p.name = camelize(p.name);
14529
+ nonNameProps.push(p);
14530
+ }
14250
14531
  }
14251
14532
  } else if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
14252
14533
  if (p.exp) slotName = p.exp;
@@ -14275,16 +14556,17 @@ const transformOn$1 = (dir, node, context, augmentor) => {
14275
14556
  const { loc, modifiers, arg } = dir;
14276
14557
  if (!dir.exp && !modifiers.length) context.onError(createCompilerError(35, loc));
14277
14558
  let eventName;
14278
- if (arg.type === 4) if (arg.isStatic) {
14279
- let rawName = arg.content;
14280
- if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
14281
- eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
14282
- } else eventName = createCompoundExpression([
14283
- `${context.helperString(TO_HANDLER_KEY)}(`,
14284
- arg,
14285
- `)`
14286
- ]);
14287
- else {
14559
+ if (arg.type === 4) {
14560
+ if (arg.isStatic) {
14561
+ let rawName = arg.content;
14562
+ if (rawName.startsWith("vue:")) rawName = `vnode-${rawName.slice(4)}`;
14563
+ eventName = createSimpleExpression(node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? toHandlerKey(camelize(rawName)) : `on:${rawName}`, true, arg.loc);
14564
+ } else eventName = createCompoundExpression([
14565
+ `${context.helperString(TO_HANDLER_KEY)}(`,
14566
+ arg,
14567
+ `)`
14568
+ ]);
14569
+ } else {
14288
14570
  eventName = arg;
14289
14571
  eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
14290
14572
  eventName.children.push(`)`);
@@ -14301,13 +14583,15 @@ const transformOn$1 = (dir, node, context, augmentor) => {
14301
14583
  exp = dir.exp = processExpression(exp, context, false, hasMultipleStatements);
14302
14584
  isInlineStatement && context.removeIdentifiers(`$event`);
14303
14585
  shouldCache = context.cacheHandlers && !context.inVOnce && !(exp.type === 4 && exp.constType > 0) && !(isMemberExp && node.tagType === 1) && !hasScopeRef(exp, context.identifiers);
14304
- if (shouldCache && isMemberExp) if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
14305
- else exp.children = [
14306
- ...exp.children,
14307
- ` && `,
14308
- ...exp.children,
14309
- `(...args)`
14310
- ];
14586
+ if (shouldCache && isMemberExp) {
14587
+ if (exp.type === 4) exp.content = `${exp.content} && ${exp.content}(...args)`;
14588
+ else exp.children = [
14589
+ ...exp.children,
14590
+ ` && `,
14591
+ ...exp.children,
14592
+ `(...args)`
14593
+ ];
14594
+ }
14311
14595
  }
14312
14596
  if (isInlineStatement || shouldCache && isMemberExp) exp = createCompoundExpression([
14313
14597
  `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
@@ -14335,11 +14619,14 @@ const transformBind = (dir, _node, context) => {
14335
14619
  arg.children.unshift(`(`);
14336
14620
  arg.children.push(`) || ""`);
14337
14621
  } else if (!arg.isStatic) arg.content = arg.content ? `${arg.content} || ""` : `""`;
14338
- if (modifiers.some((mod) => mod.content === "camel")) if (arg.type === 4) if (arg.isStatic) arg.content = camelize(arg.content);
14339
- else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
14340
- else {
14341
- arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
14342
- arg.children.push(`)`);
14622
+ if (modifiers.some((mod) => mod.content === "camel")) {
14623
+ if (arg.type === 4) {
14624
+ if (arg.isStatic) arg.content = camelize(arg.content);
14625
+ else arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
14626
+ } else {
14627
+ arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
14628
+ arg.children.push(`)`);
14629
+ }
14343
14630
  }
14344
14631
  if (!context.inSSR) {
14345
14632
  if (modifiers.some((mod) => mod.content === "prop")) injectPrefix(arg, ".");
@@ -14348,9 +14635,10 @@ const transformBind = (dir, _node, context) => {
14348
14635
  return { props: [createObjectProperty(arg, exp)] };
14349
14636
  };
14350
14637
  const injectPrefix = (arg, prefix) => {
14351
- if (arg.type === 4) if (arg.isStatic) arg.content = prefix + arg.content;
14352
- else arg.content = `\`${prefix}\${${arg.content}}\``;
14353
- else {
14638
+ if (arg.type === 4) {
14639
+ if (arg.isStatic) arg.content = prefix + arg.content;
14640
+ else arg.content = `\`${prefix}\${${arg.content}}\``;
14641
+ } else {
14354
14642
  arg.children.unshift(`'${prefix}' + (`);
14355
14643
  arg.children.push(`)`);
14356
14644
  }
@@ -14445,20 +14733,21 @@ const transformModel$1 = (dir, node, context) => {
14445
14733
  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(["\"onUpdate:\" + ", arg]) : `onUpdate:modelValue`;
14446
14734
  let assignmentExp;
14447
14735
  const eventArg = context.isTS ? `($event: any)` : `$event`;
14448
- if (maybeRef) if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
14449
- `${eventArg} => ((`,
14450
- createSimpleExpression(rawExp, false, exp.loc),
14451
- `).value = $event)`
14452
- ]);
14453
- else {
14454
- const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
14455
- assignmentExp = createCompoundExpression([
14456
- `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
14736
+ if (maybeRef) {
14737
+ if (bindingType === "setup-ref") assignmentExp = createCompoundExpression([
14738
+ `${eventArg} => ((`,
14457
14739
  createSimpleExpression(rawExp, false, exp.loc),
14458
- `).value = $event : ${altAssignment})`
14740
+ `).value = $event)`
14459
14741
  ]);
14460
- }
14461
- else assignmentExp = createCompoundExpression([
14742
+ else {
14743
+ const altAssignment = bindingType === "setup-let" ? `${rawExp} = $event` : `null`;
14744
+ assignmentExp = createCompoundExpression([
14745
+ `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,
14746
+ createSimpleExpression(rawExp, false, exp.loc),
14747
+ `).value = $event : ${altAssignment})`
14748
+ ]);
14749
+ }
14750
+ } else assignmentExp = createCompoundExpression([
14462
14751
  `${eventArg} => ((`,
14463
14752
  exp,
14464
14753
  `) = $event)`
@@ -14517,11 +14806,12 @@ function parseFilter(node, context) {
14517
14806
  if (c === 96 && prev !== 92) inTemplateString = false;
14518
14807
  } else if (inRegex) {
14519
14808
  if (c === 47 && prev !== 92) inRegex = false;
14520
- } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) if (expression === void 0) {
14521
- lastFilterIndex = i + 1;
14522
- expression = exp.slice(0, i).trim();
14523
- } else pushFilter();
14524
- else {
14809
+ } else if (c === 124 && exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
14810
+ if (expression === void 0) {
14811
+ lastFilterIndex = i + 1;
14812
+ expression = exp.slice(0, i).trim();
14813
+ } else pushFilter();
14814
+ } else {
14525
14815
  switch (c) {
14526
14816
  case 34:
14527
14817
  inDouble = true;
@@ -14547,9 +14837,7 @@ function parseFilter(node, context) {
14547
14837
  case 123:
14548
14838
  curly++;
14549
14839
  break;
14550
- case 125:
14551
- curly--;
14552
- break;
14840
+ case 125: curly--;
14553
14841
  }
14554
14842
  if (c === 47) {
14555
14843
  let j = i - 1;
@@ -14808,8 +15096,6 @@ const transformModel = (dir, node, context) => {
14808
15096
  case "file":
14809
15097
  isInvalidType = true;
14810
15098
  context.onError(createDOMCompilerError(60, dir.loc));
14811
- break;
14812
- default: break;
14813
15099
  }
14814
15100
  } else if (hasDynamicKeyVBind(node)) directiveToUse = V_MODEL_DYNAMIC;
14815
15101
  } else if (tag === "select") directiveToUse = V_MODEL_SELECT;
@@ -14820,27 +15106,37 @@ const transformModel = (dir, node, context) => {
14820
15106
  };
14821
15107
  //#endregion
14822
15108
  //#region packages/compiler-dom/src/transforms/vOn.ts
14823
- const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
14824
- const isNonKeyModifier = /* @__PURE__ */ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
14825
- const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
14826
- const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);
15109
+ const isEventOptionModifier = /*@__PURE__*/ makeMap(`passive,once,capture`);
15110
+ const isNonKeyModifier = /*@__PURE__*/ makeMap("stop,prevent,self,ctrl,shift,alt,meta,exact,middle");
15111
+ const maybeKeyModifier = /*@__PURE__*/ makeMap("left,right");
15112
+ const isKeyboardEvent = /*@__PURE__*/ makeMap(`onkeyup,onkeydown,onkeypress`);
14827
15113
  const resolveModifiers = (key, modifiers, context, loc) => {
14828
15114
  const keyModifiers = [];
14829
15115
  const nonKeyModifiers = [];
14830
15116
  const eventOptionModifiers = [];
14831
15117
  for (let i = 0; i < modifiers.length; i++) {
14832
15118
  const modifier = modifiers[i].content;
15119
+ if (modifier === "delegate") {
15120
+ if (context) {
15121
+ const error = /* @__PURE__ */ new SyntaxError(`.delegate modifier is only supported in Vapor components.`);
15122
+ error.loc = modifiers[i].loc;
15123
+ context.onWarn(error);
15124
+ }
15125
+ continue;
15126
+ }
14833
15127
  if (modifier === "native" && context && checkCompatEnabled("COMPILER_V_ON_NATIVE", context, loc)) eventOptionModifiers.push(modifier);
14834
15128
  else if (isEventOptionModifier(modifier)) eventOptionModifiers.push(modifier);
14835
15129
  else {
14836
15130
  const keyString = isString(key) ? key : isStaticExp(key) ? key.content : null;
14837
- if (maybeKeyModifier(modifier)) if (keyString) if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
14838
- else nonKeyModifiers.push(modifier);
14839
- else {
14840
- keyModifiers.push(modifier);
14841
- nonKeyModifiers.push(modifier);
14842
- }
14843
- else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
15131
+ if (maybeKeyModifier(modifier)) {
15132
+ if (keyString) {
15133
+ if (isKeyboardEvent(keyString.toLowerCase())) keyModifiers.push(modifier);
15134
+ else nonKeyModifiers.push(modifier);
15135
+ } else {
15136
+ keyModifiers.push(modifier);
15137
+ nonKeyModifiers.push(modifier);
15138
+ }
15139
+ } else if (isNonKeyModifier(modifier)) nonKeyModifiers.push(modifier);
14844
15140
  else keyModifiers.push(modifier);
14845
15141
  }
14846
15142
  }
@@ -14978,7 +15274,7 @@ const dataAriaRE = /^(?:data|aria)-/;
14978
15274
  const isStringifiableAttr = (name, ns) => {
14979
15275
  return (ns === 0 ? isKnownHtmlAttr(name) : ns === 1 ? isKnownSvgAttr(name) : ns === 2 ? isKnownMathMLAttr(name) : false) || dataAriaRE.test(name);
14980
15276
  };
14981
- const isNonStringifiable = /* @__PURE__ */ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
15277
+ const isNonStringifiable = /*@__PURE__*/ makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
14982
15278
  /**
14983
15279
  * for a cached node, analyze it and return:
14984
15280
  * - false: bailed (contains non-stringifiable props or runtime constant)
@@ -15049,10 +15345,11 @@ function stringifyElement(node, context) {
15049
15345
  res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
15050
15346
  continue;
15051
15347
  }
15052
- if (isBooleanAttr(p.arg.content) && exp.content === "false") continue;
15348
+ if ((isBooleanAttr(p.arg.content) || p.arg.content === "hidden") && exp.content === "false") continue;
15053
15349
  let evaluated = evaluateConstant(exp);
15054
15350
  if (evaluated != null) {
15055
15351
  const arg = p.arg && p.arg.content;
15352
+ if (arg === "hidden" && typeof evaluated === "number" && !includeBooleanAttr(evaluated)) continue;
15056
15353
  if (arg === "class") evaluated = normalizeClass(evaluated);
15057
15354
  else if (arg === "style") evaluated = stringifyStyle(normalizeStyle(evaluated));
15058
15355
  res += ` ${p.arg.content}="${escapeHtml(evaluated)}"`;
@@ -15112,8 +15409,10 @@ function compile(src, options = {}) {
15112
15409
  //#region packages/vue-compat/src/index.ts
15113
15410
  const compileCache = Object.create(null);
15114
15411
  function compileToFunction(template, options) {
15115
- if (!isString(template)) if (template.nodeType) template = template.innerHTML;
15116
- else return NOOP;
15412
+ if (!isString(template)) {
15413
+ if (template.nodeType) template = template.innerHTML;
15414
+ else return NOOP;
15415
+ }
15117
15416
  const key = genCacheKey(template, options);
15118
15417
  const cached = compileCache[key];
15119
15418
  if (cached) return cached;