@vue/runtime-dom 3.5.26 → 3.5.28

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,11 +1,11 @@
1
1
  /**
2
- * @vue/runtime-dom v3.5.26
2
+ * @vue/runtime-dom v3.5.28
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
- import { warn, BaseTransitionPropsValidators, h, BaseTransition, assertNumber, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, unref, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, createRenderer, createHydrationRenderer, isRuntimeOnly } from '@vue/runtime-core';
6
+ import { warn, BaseTransitionPropsValidators, h, BaseTransition, assertNumber, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, nextTick, unref, createVNode, defineComponent, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, createRenderer, isRuntimeOnly, createHydrationRenderer } from '@vue/runtime-core';
7
7
  export * from '@vue/runtime-core';
8
- import { extend, isObject, toNumber, isArray, NOOP, normalizeCssVarValue, isString, hyphenate, capitalize, isSpecialBooleanAttr, includeBooleanAttr, isSymbol, isFunction, isOn, isModelListener, camelize as camelize$1, isPlainObject, hasOwn, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';
8
+ import { extend, isObject, toNumber, isArray, NOOP, normalizeCssVarValue, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, isOn, isModelListener, camelize as camelize$1, hasOwn, isPlainObject, EMPTY_OBJ, looseIndexOf, isSet, looseEqual, looseToNumber, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';
9
9
 
10
10
  let policy = void 0;
11
11
  const tt = typeof window !== "undefined" && window.trustedTypes;
@@ -1259,6 +1259,12 @@ class VueElement extends BaseClass {
1259
1259
  this._update();
1260
1260
  }
1261
1261
  }
1262
+ /**
1263
+ * @internal
1264
+ */
1265
+ _hasShadowRoot() {
1266
+ return this._def.shadowRoot !== false;
1267
+ }
1262
1268
  /**
1263
1269
  * @internal
1264
1270
  */
@@ -1393,10 +1399,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
1393
1399
  instance
1394
1400
  )
1395
1401
  );
1396
- positionMap.set(child, {
1397
- left: child.el.offsetLeft,
1398
- top: child.el.offsetTop
1399
- });
1402
+ positionMap.set(child, getPosition(child.el));
1400
1403
  }
1401
1404
  }
1402
1405
  }
@@ -1427,10 +1430,7 @@ function callPendingCbs(c) {
1427
1430
  }
1428
1431
  }
1429
1432
  function recordPosition(c) {
1430
- newPositionMap.set(c, {
1431
- left: c.el.offsetLeft,
1432
- top: c.el.offsetTop
1433
- });
1433
+ newPositionMap.set(c, getPosition(c.el));
1434
1434
  }
1435
1435
  function applyTranslation(c) {
1436
1436
  const oldPos = positionMap.get(c);
@@ -1438,12 +1438,29 @@ function applyTranslation(c) {
1438
1438
  const dx = oldPos.left - newPos.left;
1439
1439
  const dy = oldPos.top - newPos.top;
1440
1440
  if (dx || dy) {
1441
- const s = c.el.style;
1442
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
1441
+ const el = c.el;
1442
+ const s = el.style;
1443
+ const rect = el.getBoundingClientRect();
1444
+ let scaleX = 1;
1445
+ let scaleY = 1;
1446
+ if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;
1447
+ if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;
1448
+ if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;
1449
+ if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;
1450
+ if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;
1451
+ if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;
1452
+ s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;
1443
1453
  s.transitionDuration = "0s";
1444
1454
  return c;
1445
1455
  }
1446
1456
  }
1457
+ function getPosition(el) {
1458
+ const rect = el.getBoundingClientRect();
1459
+ return {
1460
+ left: rect.left,
1461
+ top: rect.top
1462
+ };
1463
+ }
1447
1464
  function hasCSSTransform(el, root, moveClass) {
1448
1465
  const clone = el.cloneNode();
1449
1466
  const _vtc = el[vtcKey];
@@ -1754,6 +1771,7 @@ const modifierGuards = {
1754
1771
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
1755
1772
  };
1756
1773
  const withModifiers = (fn, modifiers) => {
1774
+ if (!fn) return fn;
1757
1775
  const cache = fn._withMods || (fn._withMods = {});
1758
1776
  const cacheKey = modifiers.join(".");
1759
1777
  return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {