@vue/compat 3.6.0-beta.5 → 3.6.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-beta.5
2
+ * @vue/compat v3.6.0-beta.6
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -3654,36 +3654,44 @@ function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }
3654
3654
  if (isReorder) insert(anchor, container, parentAnchor);
3655
3655
  }
3656
3656
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector, insert, createText } }, hydrateChildren) {
3657
- function hydrateDisabledTeleport(node, vnode, targetStart, targetAnchor) {
3657
+ function hydrateAnchor(target, targetNode) {
3658
+ let targetAnchor = targetNode;
3659
+ while (targetAnchor) {
3660
+ if (targetAnchor && targetAnchor.nodeType === 8) {
3661
+ if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
3662
+ else if (targetAnchor.data === "teleport anchor") {
3663
+ vnode.targetAnchor = targetAnchor;
3664
+ target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
3665
+ break;
3666
+ }
3667
+ }
3668
+ targetAnchor = nextSibling(targetAnchor);
3669
+ }
3670
+ }
3671
+ function hydrateDisabledTeleport(node, vnode) {
3658
3672
  vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);
3659
- vnode.targetStart = targetStart;
3660
- vnode.targetAnchor = targetAnchor;
3661
3673
  }
3662
3674
  const target = vnode.target = resolveTarget(vnode.props, querySelector);
3663
3675
  const disabled = isTeleportDisabled(vnode.props);
3664
3676
  if (target) {
3665
3677
  const targetNode = target._lpa || target.firstChild;
3666
- if (vnode.shapeFlag & 16) if (disabled) hydrateDisabledTeleport(node, vnode, targetNode, targetNode && nextSibling(targetNode));
3667
- else {
3678
+ if (vnode.shapeFlag & 16) if (disabled) {
3679
+ hydrateDisabledTeleport(node, vnode);
3680
+ hydrateAnchor(target, targetNode);
3681
+ if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert, parentNode(node) === target ? node : null);
3682
+ } else {
3668
3683
  vnode.anchor = nextSibling(node);
3669
- let targetAnchor = targetNode;
3670
- while (targetAnchor) {
3671
- if (targetAnchor && targetAnchor.nodeType === 8) {
3672
- if (targetAnchor.data === "teleport start anchor") vnode.targetStart = targetAnchor;
3673
- else if (targetAnchor.data === "teleport anchor") {
3674
- vnode.targetAnchor = targetAnchor;
3675
- target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
3676
- break;
3677
- }
3678
- }
3679
- targetAnchor = nextSibling(targetAnchor);
3680
- }
3684
+ hydrateAnchor(target, targetNode);
3681
3685
  if (!vnode.targetAnchor) prepareAnchor(target, vnode, createText, insert);
3682
3686
  hydrateChildren(targetNode && nextSibling(targetNode), vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
3683
3687
  }
3684
3688
  updateCssVars(vnode, disabled);
3685
3689
  } else if (disabled) {
3686
- if (vnode.shapeFlag & 16) hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
3690
+ if (vnode.shapeFlag & 16) {
3691
+ hydrateDisabledTeleport(node, vnode);
3692
+ vnode.targetStart = node;
3693
+ vnode.targetAnchor = nextSibling(node);
3694
+ }
3687
3695
  }
3688
3696
  return vnode.anchor && nextSibling(vnode.anchor);
3689
3697
  }
@@ -3706,13 +3714,13 @@ function updateCssVars(vnode, isDisabled) {
3706
3714
  ctx.ut();
3707
3715
  }
3708
3716
  }
3709
- function prepareAnchor(target, vnode, createText, insert) {
3717
+ function prepareAnchor(target, vnode, createText, insert, anchor = null) {
3710
3718
  const targetStart = vnode.targetStart = createText("");
3711
3719
  const targetAnchor = vnode.targetAnchor = createText("");
3712
3720
  targetStart[TeleportEndKey] = targetAnchor;
3713
3721
  if (target) {
3714
- insert(targetStart, target);
3715
- insert(targetAnchor, target);
3722
+ insert(targetStart, target, anchor);
3723
+ insert(targetAnchor, target, anchor);
3716
3724
  }
3717
3725
  return targetAnchor;
3718
3726
  }
@@ -3891,7 +3899,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3891
3899
  cancelHook = onAppearCancelled || onEnterCancelled;
3892
3900
  } else return;
3893
3901
  let called = false;
3894
- const done = el[enterCbKey$1] = (cancelled) => {
3902
+ el[enterCbKey$1] = (cancelled) => {
3895
3903
  if (called) return;
3896
3904
  called = true;
3897
3905
  if (cancelled) callHook(cancelHook, [el]);
@@ -3899,6 +3907,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3899
3907
  if (hooks.delayedLeave) hooks.delayedLeave();
3900
3908
  el[enterCbKey$1] = void 0;
3901
3909
  };
3910
+ const done = el[enterCbKey$1].bind(null, false);
3902
3911
  if (hook) callAsyncHook(hook, [el, done]);
3903
3912
  else done();
3904
3913
  },
@@ -3907,7 +3916,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3907
3916
  if (state.isUnmounting) return remove();
3908
3917
  callHook(onBeforeLeave, [el]);
3909
3918
  let called = false;
3910
- const done = el[leaveCbKey] = (cancelled) => {
3919
+ el[leaveCbKey] = (cancelled) => {
3911
3920
  if (called) return;
3912
3921
  called = true;
3913
3922
  remove();
@@ -3917,6 +3926,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3917
3926
  unsetLeavingNodeCache(el);
3918
3927
  };
3919
3928
  setLeavingNodeCache(el);
3929
+ const done = el[leaveCbKey].bind(null, false);
3920
3930
  if (onLeave) callAsyncHook(onLeave, [el, done]);
3921
3931
  else done();
3922
3932
  },
@@ -4014,8 +4024,7 @@ function useTemplateRef(key) {
4014
4024
  const r = /* @__PURE__ */ shallowRef(null);
4015
4025
  if (i) {
4016
4026
  const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;
4017
- let desc;
4018
- if ((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) warn$1(`useTemplateRef('${key}') already exists.`);
4027
+ if (isTemplateRefKey(refs, key)) warn$1(`useTemplateRef('${key}') already exists.`);
4019
4028
  else Object.defineProperty(refs, key, {
4020
4029
  enumerable: true,
4021
4030
  get: () => r.value,
@@ -4026,6 +4035,10 @@ function useTemplateRef(key) {
4026
4035
  knownTemplateRefs.add(ret);
4027
4036
  return ret;
4028
4037
  }
4038
+ function isTemplateRefKey(refs, key) {
4039
+ let desc;
4040
+ return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);
4041
+ }
4029
4042
 
4030
4043
  //#endregion
4031
4044
  //#region packages/runtime-core/src/rendererTemplateRef.ts
@@ -4052,9 +4065,11 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4052
4065
  const oldRef = oldRawRef && oldRawRef.r;
4053
4066
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
4054
4067
  const setupState = owner.setupState;
4055
- const canSetSetupRef = createCanSetSetupRefChecker(setupState);
4056
- const canSetRef = (ref) => {
4057
- return !knownTemplateRefs.has(ref);
4068
+ const canSetSetupRef = createCanSetSetupRefChecker(setupState, refs);
4069
+ const canSetRef = (ref, key) => {
4070
+ if (knownTemplateRefs.has(ref)) return false;
4071
+ if (key && isTemplateRefKey(refs, key)) return false;
4072
+ return true;
4058
4073
  };
4059
4074
  if (oldRef != null && oldRef !== ref) {
4060
4075
  invalidatePendingSetRef(oldRawRef);
@@ -4062,8 +4077,8 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4062
4077
  refs[oldRef] = null;
4063
4078
  if (canSetSetupRef(oldRef)) setupState[oldRef] = null;
4064
4079
  } else if (/* @__PURE__ */ isRef(oldRef)) {
4065
- if (canSetRef(oldRef)) oldRef.value = null;
4066
4080
  const oldRawRefAtom = oldRawRef;
4081
+ if (canSetRef(oldRef, oldRawRefAtom.k)) oldRef.value = null;
4067
4082
  if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;
4068
4083
  }
4069
4084
  }
@@ -4081,7 +4096,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4081
4096
  if (canSetSetupRef(ref)) setupState[ref] = refs[ref];
4082
4097
  } else {
4083
4098
  const newVal = [refValue];
4084
- if (canSetRef(ref)) ref.value = newVal;
4099
+ if (canSetRef(ref, rawRef.k)) ref.value = newVal;
4085
4100
  if (rawRef.k) refs[rawRef.k] = newVal;
4086
4101
  }
4087
4102
  else if (!existing.includes(refValue)) existing.push(refValue);
@@ -4089,7 +4104,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4089
4104
  refs[ref] = value;
4090
4105
  if (canSetSetupRef(ref)) setupState[ref] = value;
4091
4106
  } else if (_isRef) {
4092
- if (canSetRef(ref)) ref.value = value;
4107
+ if (canSetRef(ref, rawRef.k)) ref.value = value;
4093
4108
  if (rawRef.k) refs[rawRef.k] = value;
4094
4109
  } else warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
4095
4110
  };
@@ -4107,11 +4122,12 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4107
4122
  } else warn$1("Invalid template ref type:", ref, `(${typeof ref})`);
4108
4123
  }
4109
4124
  }
4110
- function createCanSetSetupRefChecker(setupState) {
4125
+ function createCanSetSetupRefChecker(setupState, refs) {
4111
4126
  const rawSetupState = /* @__PURE__ */ toRaw(setupState);
4112
4127
  return setupState === void 0 || setupState === EMPTY_OBJ ? NO : (key) => {
4113
4128
  if (hasOwn(rawSetupState, key) && !/* @__PURE__ */ isRef(rawSetupState[key])) warn$1(`Template ref "${key}" used on a non-ref value. It will not work in the production build.`);
4114
4129
  if (knownTemplateRefs.has(rawSetupState[key])) return false;
4130
+ if (isTemplateRefKey(refs, key)) return false;
4115
4131
  return hasOwn(rawSetupState, key);
4116
4132
  };
4117
4133
  }
@@ -6253,7 +6269,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6253
6269
  if (options.el) return vm.$mount(options.el);
6254
6270
  else return vm;
6255
6271
  }
6256
- Vue.version = `2.6.14-compat:3.6.0-beta.5`;
6272
+ Vue.version = `2.6.14-compat:3.6.0-beta.6`;
6257
6273
  Vue.config = singletonApp.config;
6258
6274
  Vue.use = (plugin, ...options) => {
6259
6275
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -7041,7 +7057,7 @@ function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
7041
7057
  const dynamicProps = nextVNode.dynamicProps;
7042
7058
  for (let i = 0; i < dynamicProps.length; i++) {
7043
7059
  const key = dynamicProps[i];
7044
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) return true;
7060
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) return true;
7045
7061
  }
7046
7062
  }
7047
7063
  } else {
@@ -7060,10 +7076,16 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
7060
7076
  if (nextKeys.length !== Object.keys(prevProps).length) return true;
7061
7077
  for (let i = 0; i < nextKeys.length; i++) {
7062
7078
  const key = nextKeys[i];
7063
- if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) return true;
7079
+ if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) return true;
7064
7080
  }
7065
7081
  return false;
7066
7082
  }
7083
+ function hasPropValueChanged(nextProps, prevProps, key) {
7084
+ const nextProp = nextProps[key];
7085
+ const prevProp = prevProps[key];
7086
+ if (key === "style" && isObject(nextProp) && isObject(prevProp)) return !looseEqual(nextProp, prevProp);
7087
+ return nextProp !== prevProp;
7088
+ }
7067
7089
  function updateHOCHostEl({ vnode, parent }, el) {
7068
7090
  while (parent && !parent.vapor) {
7069
7091
  const root = parent.subTree;
@@ -7605,13 +7627,7 @@ function baseCreateRenderer(options, createHydrationFns) {
7605
7627
  if (n1 == null) hostInsert(n2.el = hostCreateText(n2.children), container, anchor);
7606
7628
  else {
7607
7629
  const el = n2.el = n1.el;
7608
- if (n2.children !== n1.children) if (isHmrUpdating && n2.patchFlag === -1 && "__elIndex" in n1) {
7609
- const childNodes = container.childNodes;
7610
- const newChild = hostCreateText(n2.children);
7611
- const oldChild = childNodes[n2.__elIndex = n1.__elIndex];
7612
- hostInsert(newChild, container, oldChild);
7613
- hostRemove(oldChild);
7614
- } else hostSetText(el, n2.children);
7630
+ if (n2.children !== n1.children) hostSetText(el, n2.children);
7615
7631
  }
7616
7632
  };
7617
7633
  const processCommentNode = (n1, n2, container, anchor) => {
@@ -7955,7 +7971,9 @@ function baseCreateRenderer(options, createHydrationFns) {
7955
7971
  updateComponentPreRender(instance, next, optimized);
7956
7972
  }
7957
7973
  nonHydratedAsyncRoot.asyncDep.then(() => {
7958
- if (!instance.isUnmounted) this.fn();
7974
+ queuePostRenderEffect(() => {
7975
+ if (!instance.isUnmounted) instance.update();
7976
+ }, void 0, parentSuspense);
7959
7977
  });
7960
7978
  return;
7961
7979
  }
@@ -8368,8 +8386,10 @@ function traverseStaticChildren(n1, n2, shallow = false) {
8368
8386
  }
8369
8387
  if (!shallow && c2.patchFlag !== -2) traverseStaticChildren(c1, c2);
8370
8388
  }
8371
- if (c2.type === Text) if (c2.patchFlag !== -1) c2.el = c1.el;
8372
- else c2.__elIndex = i + (n1.type === Fragment ? 1 : 0);
8389
+ if (c2.type === Text) {
8390
+ if (c2.patchFlag === -1) c2 = ch2[i] = cloneIfMounted(c2);
8391
+ c2.el = c1.el;
8392
+ }
8373
8393
  if (c2.type === Comment && !c2.el) c2.el = c1.el;
8374
8394
  c2.el && (c2.el.__vnode = c2);
8375
8395
  }
@@ -9660,7 +9680,7 @@ function isMemoSame(cached, memo) {
9660
9680
 
9661
9681
  //#endregion
9662
9682
  //#region packages/runtime-core/src/index.ts
9663
- const version = "3.6.0-beta.5";
9683
+ const version = "3.6.0-beta.6";
9664
9684
  const warn = warn$1;
9665
9685
  /**
9666
9686
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -10831,10 +10851,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
10831
10851
  if (child.el && child.el instanceof Element) {
10832
10852
  prevChildren.push(child);
10833
10853
  setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
10834
- positionMap.set(child, {
10835
- left: child.el.offsetLeft,
10836
- top: child.el.offsetTop
10837
- });
10854
+ positionMap.set(child, getPosition(child.el));
10838
10855
  }
10839
10856
  }
10840
10857
  children = slots.default ? getTransitionRawChildren(slots.default()) : [];
@@ -10853,10 +10870,7 @@ function callPendingCbs(el) {
10853
10870
  if (el[enterCbKey]) el[enterCbKey]();
10854
10871
  }
10855
10872
  function recordPosition(c) {
10856
- newPositionMap.set(c, {
10857
- left: c.el.offsetLeft,
10858
- top: c.el.offsetTop
10859
- });
10873
+ newPositionMap.set(c, getPosition(c.el));
10860
10874
  }
10861
10875
  function applyTranslation(c) {
10862
10876
  if (baseApplyTranslation(positionMap.get(c), newPositionMap.get(c), c.el)) return c;
@@ -10866,12 +10880,28 @@ function baseApplyTranslation(oldPos, newPos, el) {
10866
10880
  const dy = oldPos.top - newPos.top;
10867
10881
  if (dx || dy) {
10868
10882
  const s = el.style;
10869
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
10883
+ const rect = el.getBoundingClientRect();
10884
+ let scaleX = 1;
10885
+ let scaleY = 1;
10886
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
10887
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
10888
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
10889
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
10890
+ if (Math.abs(scaleX - 1) < .01) scaleX = 1;
10891
+ if (Math.abs(scaleY - 1) < .01) scaleY = 1;
10892
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
10870
10893
  s.transitionDuration = "0s";
10871
10894
  return true;
10872
10895
  }
10873
10896
  return false;
10874
10897
  }
10898
+ function getPosition(el) {
10899
+ const rect = el.getBoundingClientRect();
10900
+ return {
10901
+ left: rect.left,
10902
+ top: rect.top
10903
+ };
10904
+ }
10875
10905
  function hasCSSTransform(el, root, moveClass) {
10876
10906
  const clone = el.cloneNode();
10877
10907
  const _vtc = el[vtcKey];
@@ -11158,6 +11188,7 @@ const modifierGuards = {
11158
11188
  * @private
11159
11189
  */
11160
11190
  const withModifiers = (fn, modifiers) => {
11191
+ if (!fn) return fn;
11161
11192
  const cache = fn._withMods || (fn._withMods = {});
11162
11193
  const cacheKey = modifiers.join(".");
11163
11194
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {
@@ -15872,12 +15903,11 @@ function compileToFunction(template, options) {
15872
15903
  registerRuntimeCompiler(compileToFunction);
15873
15904
  const Vue = createCompatVue();
15874
15905
  Vue.compile = compileToFunction;
15875
- var src_default = Vue;
15876
15906
 
15877
15907
  //#endregion
15878
15908
  //#region packages/vue-compat/src/esm-index.ts
15879
- var esm_index_default = src_default;
15880
- const configureCompat = src_default.configureCompat;
15909
+ var esm_index_default = Vue;
15910
+ const configureCompat = Vue.configureCompat;
15881
15911
 
15882
15912
  //#endregion
15883
15913
  export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, MoveType, NULL_DYNAMIC_COMPONENT, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, VueElementBase, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, esm_index_default as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getCurrentWatcher, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, nodeOps, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setIsHydratingEnabled, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };