@vue/compat 3.5.42 → 3.5.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.42
2
+ * @vue/compat v3.5.44
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -210,10 +210,10 @@ function normalizeStyle(value) {
210
210
  }
211
211
  const listDelimiterRE = /;(?![^(]*\))/g;
212
212
  const propertyDelimiterRE = /:([^]+)/;
213
- const styleCommentRE = /\/\*[^]*?\*\//g;
213
+ const styleCommentRE = /"(?:[^"\\]|\\[^])*"|'(?:[^'\\]|\\[^])*'|\\[^]|\/\*[^]*?\*\//g;
214
214
  function parseStringStyle(cssText) {
215
215
  const ret = {};
216
- cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
216
+ cssText.replace(styleCommentRE, (match) => match.startsWith("/*") ? "" : match).split(listDelimiterRE).forEach((item) => {
217
217
  if (item) {
218
218
  const tmp = item.split(propertyDelimiterRE);
219
219
  tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
@@ -275,7 +275,7 @@ const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
275
275
  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
276
276
  const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
277
277
 
278
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
278
+ const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
279
279
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
280
280
  const isBooleanAttr = /* @__PURE__ */ makeMap(
281
281
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
@@ -347,22 +347,22 @@ function getEscapedCssVarName(key, doubleEscape) {
347
347
  );
348
348
  }
349
349
 
350
- function looseCompareArrays(a, b) {
350
+ function looseCompareArrays(a, b, seen) {
351
351
  if (a.length !== b.length) return false;
352
352
  let equal = true;
353
353
  for (let i = 0; equal && i < a.length; i++) {
354
- equal = looseEqual(a[i], b[i]);
354
+ equal = looseEqual(a[i], b[i], seen);
355
355
  }
356
356
  return equal;
357
357
  }
358
- function looseCompareCollections(a, b) {
358
+ function looseCompareCollections(a, b, seen) {
359
359
  if (a.size !== b.size) return false;
360
360
  const candidates = Array.from(b);
361
361
  const matched = new Uint8Array(candidates.length);
362
362
  for (const item of a) {
363
363
  let index = -1;
364
364
  for (let i = 0; i < candidates.length; i++) {
365
- if (!matched[i] && looseEqual(item, candidates[i])) {
365
+ if (!matched[i] && looseEqual(item, candidates[i], seen)) {
366
366
  index = i;
367
367
  break;
368
368
  }
@@ -372,7 +372,47 @@ function looseCompareCollections(a, b) {
372
372
  }
373
373
  return true;
374
374
  }
375
- function looseEqual(a, b) {
375
+ function looseCompareObjects(a, b, seen) {
376
+ let aValidType = isMap(a);
377
+ let bValidType = isMap(b);
378
+ if (aValidType || bValidType) {
379
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
380
+ }
381
+ aValidType = isSet(a);
382
+ bValidType = isSet(b);
383
+ if (aValidType || bValidType) {
384
+ return aValidType && bValidType ? looseCompareCollections(a, b, seen) : false;
385
+ }
386
+ const aKeysCount = Object.keys(a).length;
387
+ const bKeysCount = Object.keys(b).length;
388
+ if (aKeysCount !== bKeysCount) {
389
+ return false;
390
+ }
391
+ for (const key in a) {
392
+ const aHasKey = a.hasOwnProperty(key);
393
+ const bHasKey = b.hasOwnProperty(key);
394
+ if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key], seen)) {
395
+ return false;
396
+ }
397
+ }
398
+ return String(a) === String(b);
399
+ }
400
+ function looseCompareNested(a, b, seen, compare) {
401
+ if (!seen) {
402
+ seen = [/* @__PURE__ */ new Map(), /* @__PURE__ */ new Map()];
403
+ }
404
+ const [seenA, seenB] = seen;
405
+ if (seenA.has(a) || seenB.has(b)) {
406
+ return seenA.get(a) === b && seenB.get(b) === a;
407
+ }
408
+ seenA.set(a, b);
409
+ seenB.set(b, a);
410
+ const equal = compare(a, b, seen);
411
+ seenA.delete(a);
412
+ seenB.delete(b);
413
+ return equal;
414
+ }
415
+ function looseEqual(a, b, seen) {
376
416
  if (a === b) return true;
377
417
  let aValidType = isDate(a);
378
418
  let bValidType = isDate(b);
@@ -387,7 +427,7 @@ function looseEqual(a, b) {
387
427
  aValidType = isArray(a);
388
428
  bValidType = isArray(b);
389
429
  if (aValidType || bValidType) {
390
- return aValidType && bValidType ? looseCompareArrays(a, b) : false;
430
+ return aValidType && bValidType ? looseCompareNested(a, b, seen, looseCompareArrays) : false;
391
431
  }
392
432
  aValidType = isObject(a);
393
433
  bValidType = isObject(b);
@@ -395,28 +435,7 @@ function looseEqual(a, b) {
395
435
  if (!aValidType || !bValidType) {
396
436
  return false;
397
437
  }
398
- aValidType = isMap(a);
399
- bValidType = isMap(b);
400
- if (aValidType || bValidType) {
401
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
402
- }
403
- aValidType = isSet(a);
404
- bValidType = isSet(b);
405
- if (aValidType || bValidType) {
406
- return aValidType && bValidType ? looseCompareCollections(a, b) : false;
407
- }
408
- const aKeysCount = Object.keys(a).length;
409
- const bKeysCount = Object.keys(b).length;
410
- if (aKeysCount !== bKeysCount) {
411
- return false;
412
- }
413
- for (const key in a) {
414
- const aHasKey = a.hasOwnProperty(key);
415
- const bHasKey = b.hasOwnProperty(key);
416
- if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
417
- return false;
418
- }
419
- }
438
+ return looseCompareNested(a, b, seen, looseCompareObjects);
420
439
  }
421
440
  return String(a) === String(b);
422
441
  }
@@ -1217,7 +1236,9 @@ function reactiveReadArray(array) {
1217
1236
  const raw = toRaw(array);
1218
1237
  if (raw === array) return raw;
1219
1238
  track(raw, "iterate", ARRAY_ITERATE_KEY);
1220
- return isShallow(array) ? raw : raw.map(toReactive);
1239
+ if (isShallow(array)) return raw;
1240
+ if (!isReadonly(array)) return raw.map(toReactive);
1241
+ return isReactive(array) ? raw.map((item) => toReadonly(toReactive(item))) : raw.map(toReadonly);
1221
1242
  }
1222
1243
  function shallowReadArray(arr) {
1223
1244
  track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY);
@@ -1344,19 +1365,41 @@ const arrayInstrumentations = {
1344
1365
  };
1345
1366
  function iterator(self, method, wrapValue) {
1346
1367
  const arr = shallowReadArray(self);
1347
- const iter = arr[method]();
1368
+ const methodFn = arr[method];
1369
+ const iter = methodFn.call(arr);
1348
1370
  if (arr !== self && !isShallow(self)) {
1349
- iter._next = iter.next;
1350
- iter.next = () => {
1351
- const result = iter._next();
1352
- if (!result.done) {
1353
- result.value = wrapValue(result.value);
1371
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1372
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1373
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1374
+ if (methodFn !== arrayProto[method]) {
1375
+ Object.defineProperties(wrapped, {
1376
+ return: {
1377
+ get() {
1378
+ const fn = iter.return;
1379
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1380
+ }
1381
+ },
1382
+ throw: {
1383
+ get() {
1384
+ const fn = iter.throw;
1385
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1386
+ }
1387
+ }
1388
+ });
1354
1389
  }
1355
- return result;
1356
- };
1390
+ return wrapped;
1391
+ }
1392
+ iter._next = iter.next;
1393
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1357
1394
  }
1358
1395
  return iter;
1359
1396
  }
1397
+ function wrapResult(result, wrapValue) {
1398
+ if (!result.done) {
1399
+ result.value = wrapValue(result.value);
1400
+ }
1401
+ return result;
1402
+ }
1360
1403
  const arrayProto = Array.prototype;
1361
1404
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1362
1405
  const arr = shallowReadArray(self);
@@ -1779,6 +1822,8 @@ function createInstrumentationGetter(isReadonly2, shallow) {
1779
1822
  return !isReadonly2;
1780
1823
  } else if (key === "__v_isReadonly") {
1781
1824
  return isReadonly2;
1825
+ } else if (key === "__v_isShallow") {
1826
+ return shallow;
1782
1827
  } else if (key === "__v_raw") {
1783
1828
  return target;
1784
1829
  }
@@ -2324,9 +2369,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2324
2369
  if (once && cb) {
2325
2370
  const _cb = cb;
2326
2371
  cb = (...args) => {
2327
- const res = _cb(...args);
2328
- watchHandle();
2329
- return res;
2372
+ try {
2373
+ return _cb(...args);
2374
+ } finally {
2375
+ watchHandle();
2376
+ }
2330
2377
  };
2331
2378
  }
2332
2379
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2337,12 +2384,13 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2337
2384
  if (cb) {
2338
2385
  const newValue = effect.run();
2339
2386
  if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2340
- if (cleanup) {
2341
- cleanup();
2342
- }
2343
2387
  const currentWatcher = activeWatcher;
2344
- activeWatcher = effect;
2388
+ pauseTracking();
2345
2389
  try {
2390
+ if (cleanup) {
2391
+ cleanup();
2392
+ }
2393
+ activeWatcher = effect;
2346
2394
  const args = [
2347
2395
  newValue,
2348
2396
  // pass undefined as the old value when it's changed for the first time
@@ -2356,6 +2404,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2356
2404
  );
2357
2405
  } finally {
2358
2406
  activeWatcher = currentWatcher;
2407
+ resetTracking();
2359
2408
  }
2360
2409
  }
2361
2410
  } else {
@@ -2756,21 +2805,21 @@ function queuePostFlushCb(cb) {
2756
2805
  }
2757
2806
  queueFlush();
2758
2807
  }
2759
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2808
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2760
2809
  {
2761
2810
  seen = seen || /* @__PURE__ */ new Map();
2762
2811
  }
2763
2812
  for (; i < queue.length; i++) {
2764
2813
  const cb = queue[i];
2765
2814
  if (cb && cb.flags & 2) {
2766
- if (instance && cb.id !== instance.uid) {
2815
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2767
2816
  continue;
2768
2817
  }
2769
2818
  if (checkRecursiveUpdates(seen, cb)) {
2770
2819
  continue;
2771
2820
  }
2772
2821
  queue.splice(i, 1);
2773
- i--;
2822
+ i = instance ? i - 1 : flushIndex;
2774
2823
  if (cb.flags & 4) {
2775
2824
  cb.flags &= -2;
2776
2825
  }
@@ -2781,12 +2830,23 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2781
2830
  }
2782
2831
  }
2783
2832
  }
2784
- function flushPostFlushCbs(seen) {
2833
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2785
2834
  if (pendingPostFlushCbs.length) {
2786
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2787
- (a, b) => getId(a) - getId(b)
2788
- );
2789
- pendingPostFlushCbs.length = 0;
2835
+ let cbs = pendingPostFlushCbs;
2836
+ let kept = 0;
2837
+ if (skip) {
2838
+ cbs = [];
2839
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2840
+ const cb = pendingPostFlushCbs[i];
2841
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2842
+ pendingPostFlushCbs[kept++] = cb;
2843
+ } else {
2844
+ cbs.push(cb);
2845
+ }
2846
+ }
2847
+ }
2848
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2849
+ pendingPostFlushCbs.length = kept;
2790
2850
  if (activePostFlushCbs) {
2791
2851
  for (let i = 0; i < deduped.length; i++) {
2792
2852
  activePostFlushCbs.push(deduped[i]);
@@ -2812,6 +2872,22 @@ function flushPostFlushCbs(seen) {
2812
2872
  postFlushIndex = 0;
2813
2873
  }
2814
2874
  }
2875
+ let isFlushing = false;
2876
+ function flushOnAppMount(fn, minUid) {
2877
+ if (isFlushing) {
2878
+ fn();
2879
+ return;
2880
+ }
2881
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2882
+ fn();
2883
+ isFlushing = true;
2884
+ try {
2885
+ flushPreFlushCbs(void 0, minUid);
2886
+ flushPostFlushCbs(void 0, queued, minUid);
2887
+ } finally {
2888
+ isFlushing = false;
2889
+ }
2890
+ }
2815
2891
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2816
2892
  function flushJobs(seen) {
2817
2893
  {
@@ -3782,6 +3858,7 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
3782
3858
  let isPre = false;
3783
3859
  if (flush === "post") {
3784
3860
  baseWatchOptions.scheduler = (job) => {
3861
+ job.i = instance;
3785
3862
  queuePostRenderEffect(job, instance && instance.suspense);
3786
3863
  };
3787
3864
  } else if (flush !== "sync") {
@@ -4083,7 +4160,11 @@ const TeleportImpl = {
4083
4160
  };
4084
4161
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
4085
4162
  if (moveType === 0) {
4163
+ if (vnode.targetStart) {
4164
+ insert(vnode.targetStart, container, parentAnchor);
4165
+ }
4086
4166
  insert(vnode.targetAnchor, container, parentAnchor);
4167
+ parentAnchor = vnode.targetAnchor;
4087
4168
  }
4088
4169
  const { el, anchor, shapeFlag, children, props } = vnode;
4089
4170
  const isReorder = moveType === 2;
@@ -4252,10 +4333,6 @@ const BaseTransitionPropsValidators = {
4252
4333
  onAfterAppear: TransitionHookValidator,
4253
4334
  onAppearCancelled: TransitionHookValidator
4254
4335
  };
4255
- const recursiveGetSubtree = (instance) => {
4256
- const subTree = instance.subTree;
4257
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
4258
- };
4259
4336
  const BaseTransitionImpl = {
4260
4337
  name: `BaseTransition`,
4261
4338
  props: BaseTransitionPropsValidators,
@@ -4296,7 +4373,7 @@ const BaseTransitionImpl = {
4296
4373
  setTransitionHooks(innerChild, enterHooks);
4297
4374
  }
4298
4375
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
4299
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
4376
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
4300
4377
  let leavingHooks = resolveTransitionHooks(
4301
4378
  oldInnerChild,
4302
4379
  rawProps,
@@ -4432,8 +4509,15 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4432
4509
  );
4433
4510
  }
4434
4511
  const leavingVNode = leavingVNodesCache[key];
4435
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
4436
- leavingVNode.el[leaveCbKey]();
4512
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
4513
+ let leavingCb = leavingVNode.el[leaveCbKey];
4514
+ if (!leavingCb) {
4515
+ const leavingRoot = getTransitionRoot(leavingVNode);
4516
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
4517
+ }
4518
+ if (leavingCb) {
4519
+ leavingCb();
4520
+ }
4437
4521
  }
4438
4522
  callHook(hook, [el]);
4439
4523
  },
@@ -4561,6 +4645,12 @@ function setTransitionHooks(vnode, hooks) {
4561
4645
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
4562
4646
  } else {
4563
4647
  vnode.transition = hooks;
4648
+ if (vnode.type === Fragment && isArray(vnode.children)) {
4649
+ const child = filterSingleRoot(vnode.children, false);
4650
+ if (child) {
4651
+ setTransitionHooks(child, hooks);
4652
+ }
4653
+ }
4564
4654
  }
4565
4655
  }
4566
4656
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -4585,6 +4675,18 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4585
4675
  }
4586
4676
  return ret;
4587
4677
  }
4678
+ function getTransitionRoot(vnode) {
4679
+ if (vnode.component) {
4680
+ return getTransitionRoot(vnode.component.subTree);
4681
+ }
4682
+ if (vnode.type === Fragment) {
4683
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
4684
+ return child ? getTransitionRoot(child) : void 0;
4685
+ }
4686
+ if (vnode.type !== Comment) {
4687
+ return vnode;
4688
+ }
4689
+ }
4588
4690
 
4589
4691
  // @__NO_SIDE_EFFECTS__
4590
4692
  function defineComponent(options, extraOptions) {
@@ -4958,13 +5060,15 @@ function createHydrationFunctions(rendererInternals) {
4958
5060
  getContainerType(container),
4959
5061
  optimized
4960
5062
  );
4961
- if (isAsyncWrapper(vnode) && !vnode.component.subTree) {
5063
+ if ((isAsyncWrapper(vnode) || vnode.component.asyncDep) && !vnode.component.subTree) {
4962
5064
  let subTree;
4963
5065
  if (isFragmentStart) {
4964
5066
  subTree = createVNode(Static);
4965
5067
  subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
4966
5068
  } else {
4967
- subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
5069
+ subTree = node.nodeType === 3 ? createTextVNode("") : createVNode(
5070
+ node.nodeType === 8 ? Comment : "div"
5071
+ );
4968
5072
  }
4969
5073
  subTree.el = node;
4970
5074
  vnode.component.subTree = subTree;
@@ -5488,14 +5592,22 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
5488
5592
  break;
5489
5593
  }
5490
5594
  }, opts);
5491
- forEach((el) => {
5492
- if (!(el instanceof Element)) return;
5595
+ const observe = (el) => {
5493
5596
  if (elementIsVisibleInViewport(el)) {
5494
5597
  hydrate();
5495
5598
  ob.disconnect();
5496
5599
  return false;
5497
5600
  }
5601
+ if (getComputedStyle(el).display === "contents") {
5602
+ for (let i = 0; i < el.children.length; i++) {
5603
+ if (observe(el.children[i]) === false) return false;
5604
+ }
5605
+ }
5498
5606
  ob.observe(el);
5607
+ };
5608
+ forEach((el) => {
5609
+ if (!(el instanceof Element)) return;
5610
+ return observe(el);
5499
5611
  });
5500
5612
  return () => ob.disconnect();
5501
5613
  };
@@ -5849,6 +5961,7 @@ const KeepAliveImpl = {
5849
5961
  unmount(cached);
5850
5962
  } else if (current) {
5851
5963
  resetShapeFlag(current);
5964
+ if (cached) resetShapeFlag(cached);
5852
5965
  }
5853
5966
  cache.delete(key);
5854
5967
  keys.delete(key);
@@ -6431,9 +6544,11 @@ function renderList(source, renderItem, cache, index) {
6431
6544
  }
6432
6545
  } else if (typeof source === "number") {
6433
6546
  if (!Number.isInteger(source) || source < 0) {
6434
- warn$1(
6435
- `The v-for range expects a positive integer value but got ${source}.`
6436
- );
6547
+ {
6548
+ warn$1(
6549
+ `The v-for range expects a positive integer value but got ${source}.`
6550
+ );
6551
+ }
6437
6552
  ret = [];
6438
6553
  } else {
6439
6554
  ret = new Array(source);
@@ -6752,6 +6867,7 @@ function installCompatInstanceProperties(map) {
6752
6867
  $vnode: (i) => i.vnode,
6753
6868
  // some private properties that are likely accessed...
6754
6869
  _self: (i) => i.proxy,
6870
+ _setupProxy: (i) => i.setupState,
6755
6871
  _uid: (i) => i.uid,
6756
6872
  _data: (i) => i.data,
6757
6873
  _isMounted: (i) => i.isMounted,
@@ -7739,7 +7855,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7739
7855
  return vm;
7740
7856
  }
7741
7857
  }
7742
- Vue.version = `2.6.14-compat:${"3.5.42"}`;
7858
+ Vue.version = `2.6.14-compat:${"3.5.44"}`;
7743
7859
  Vue.config = singletonApp.config;
7744
7860
  Vue.use = (plugin, ...options) => {
7745
7861
  if (plugin && isFunction(plugin.install)) {
@@ -8896,7 +9012,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
8896
9012
  }
8897
9013
  for (let i = 0; i < nextKeys.length; i++) {
8898
9014
  const key = nextKeys[i];
8899
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
9015
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
8900
9016
  return true;
8901
9017
  }
8902
9018
  }
@@ -9595,6 +9711,12 @@ function baseCreateRenderer(options, createHydrationFns) {
9595
9711
  optimized = false;
9596
9712
  n2.dynamicChildren = null;
9597
9713
  }
9714
+ if (n2.dynamicChildren && n1 && n1.dynamicChildren && n1.dynamicChildren.hasOnce) {
9715
+ if (n2.dynamicChildren === EMPTY_ARR) {
9716
+ n2.dynamicChildren = [];
9717
+ }
9718
+ n2.dynamicChildren.hasOnce = true;
9719
+ }
9598
9720
  const { type, ref, shapeFlag } = n2;
9599
9721
  switch (type) {
9600
9722
  case Text:
@@ -10001,15 +10123,16 @@ function baseCreateRenderer(options, createHydrationFns) {
10001
10123
  for (let i = 0; i < newChildren.length; i++) {
10002
10124
  const oldVNode = oldChildren[i];
10003
10125
  const newVNode = newChildren[i];
10126
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
10004
10127
  const container = (
10005
10128
  // oldVNode may be an errored async setup() component inside Suspense
10006
10129
  // which will not have a mounted element
10007
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
10130
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
10008
10131
  // of the Fragment itself so it can move its children.
10009
10132
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
10010
10133
  // which also requires the correct parent container
10011
10134
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
10012
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
10135
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
10013
10136
  // In other cases, the parent container is not actually used so we
10014
10137
  // just pass the block element here to avoid a DOM parentNode call.
10015
10138
  fallbackContainer
@@ -10174,7 +10297,12 @@ function baseCreateRenderer(options, createHydrationFns) {
10174
10297
  }
10175
10298
  if (isHmrUpdating) initialVNode.el = null;
10176
10299
  if (instance.asyncDep) {
10177
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
10300
+ parentSuspense && parentSuspense.registerDep(
10301
+ instance,
10302
+ setupRenderEffect,
10303
+ optimized,
10304
+ namespace
10305
+ );
10178
10306
  if (!initialVNode.el) {
10179
10307
  const placeholder = instance.subTree = createVNode(Comment);
10180
10308
  processCommentNode(null, placeholder, container, anchor);
@@ -10203,6 +10331,8 @@ function baseCreateRenderer(options, createHydrationFns) {
10203
10331
  {
10204
10332
  pushWarningContext(n2);
10205
10333
  }
10334
+ n2.el = n1.el;
10335
+ n2.placeholder = n1.placeholder;
10206
10336
  updateComponentPreRender(instance, n2, optimized);
10207
10337
  {
10208
10338
  popWarningContext();
@@ -10214,6 +10344,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10214
10344
  }
10215
10345
  } else {
10216
10346
  n2.el = n1.el;
10347
+ n2.placeholder = n1.placeholder;
10217
10348
  instance.vnode = n2;
10218
10349
  }
10219
10350
  };
@@ -10818,7 +10949,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10818
10949
  cacheIndex,
10819
10950
  memo
10820
10951
  } = vnode;
10821
- if (patchFlag === -2) {
10952
+ if (patchFlag === -2 || dynamicChildren && dynamicChildren.hasOnce) {
10822
10953
  optimized = false;
10823
10954
  }
10824
10955
  if (ref != null) {
@@ -10826,7 +10957,7 @@ function baseCreateRenderer(options, createHydrationFns) {
10826
10957
  setRef(ref, null, parentSuspense, vnode, true);
10827
10958
  resetTracking();
10828
10959
  }
10829
- if (cacheIndex != null) {
10960
+ if (cacheIndex != null && (!vnode.ctx || vnode.ctx === parentComponent)) {
10830
10961
  parentComponent.renderCache[cacheIndex] = void 0;
10831
10962
  }
10832
10963
  if (shapeFlag & 256) {
@@ -10891,35 +11022,37 @@ function baseCreateRenderer(options, createHydrationFns) {
10891
11022
  };
10892
11023
  const remove = (vnode) => {
10893
11024
  const { type, el, anchor, transition } = vnode;
10894
- if (type === Fragment) {
10895
- if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {
10896
- vnode.children.forEach((child) => {
10897
- if (child.type === Comment) {
10898
- hostRemove(child.el);
10899
- } else {
10900
- remove(child);
10901
- }
10902
- });
10903
- } else {
10904
- removeFragment(el, anchor);
10905
- }
11025
+ const isFragment = type === Fragment;
11026
+ if (isFragment && !transition) {
11027
+ removeFragment(el, anchor);
10906
11028
  return;
10907
11029
  }
10908
11030
  if (type === Static) {
10909
11031
  removeStaticNode(vnode);
11032
+ if (transition && !transition.persisted && transition.afterLeave) {
11033
+ transition.afterLeave();
11034
+ }
10910
11035
  return;
10911
11036
  }
11037
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
10912
11038
  const performRemove = () => {
10913
- hostRemove(el);
11039
+ if (isFragment) {
11040
+ if (hostParentNode(el)) {
11041
+ removeFragment(el, anchor);
11042
+ }
11043
+ } else {
11044
+ hostRemove(el);
11045
+ }
10914
11046
  if (transition && !transition.persisted && transition.afterLeave) {
10915
11047
  transition.afterLeave();
10916
11048
  }
10917
11049
  };
10918
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
11050
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
10919
11051
  const { leave, delayLeave } = transition;
10920
- const performLeave = () => leave(el, performRemove);
11052
+ const leavingEl = leavingNode.el;
11053
+ const performLeave = () => leave(leavingEl, performRemove);
10921
11054
  if (delayLeave) {
10922
- delayLeave(vnode.el, performRemove, performLeave);
11055
+ delayLeave(leavingEl, performRemove, performLeave);
10923
11056
  } else {
10924
11057
  performLeave();
10925
11058
  }
@@ -10953,6 +11086,9 @@ function baseCreateRenderer(options, createHydrationFns) {
10953
11086
  if (job) {
10954
11087
  job.flags |= 8;
10955
11088
  unmount(subTree, instance, parentSuspense, doRemove);
11089
+ } else if (instance.vnode.el && subTree) {
11090
+ subTree.transition = instance.vnode.transition;
11091
+ unmount(subTree, instance, parentSuspense, doRemove);
10956
11092
  }
10957
11093
  if (um) {
10958
11094
  queuePostRenderEffect(um, parentSuspense);
@@ -10986,32 +11122,26 @@ function baseCreateRenderer(options, createHydrationFns) {
10986
11122
  const teleportEnd = el && el[TeleportEndKey];
10987
11123
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
10988
11124
  };
10989
- let isFlushing = false;
10990
11125
  const render = (vnode, container, namespace) => {
10991
- let instance;
10992
- if (vnode == null) {
10993
- if (container._vnode) {
10994
- unmount(container._vnode, null, null, true);
10995
- instance = container._vnode.component;
11126
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
11127
+ flushOnAppMount(() => {
11128
+ if (vnode == null) {
11129
+ if (container._vnode) {
11130
+ unmount(container._vnode, null, null, true);
11131
+ }
11132
+ } else {
11133
+ patch(
11134
+ container._vnode || null,
11135
+ vnode,
11136
+ container,
11137
+ null,
11138
+ null,
11139
+ null,
11140
+ namespace
11141
+ );
10996
11142
  }
10997
- } else {
10998
- patch(
10999
- container._vnode || null,
11000
- vnode,
11001
- container,
11002
- null,
11003
- null,
11004
- null,
11005
- namespace
11006
- );
11007
- }
11008
- container._vnode = vnode;
11009
- if (!isFlushing) {
11010
- isFlushing = true;
11011
- flushPreFlushCbs(instance);
11012
- flushPostFlushCbs();
11013
- isFlushing = false;
11014
- }
11143
+ container._vnode = vnode;
11144
+ }, minUid);
11015
11145
  };
11016
11146
  const internals = {
11017
11147
  p: patch,
@@ -11173,7 +11303,7 @@ const SuspenseImpl = {
11173
11303
  rendererInternals
11174
11304
  );
11175
11305
  } else {
11176
- if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
11306
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback && !parentSuspense.isHydrating) {
11177
11307
  n2.suspense = n1.suspense;
11178
11308
  n2.suspense.vnode = n2;
11179
11309
  n2.el = n1.el;
@@ -11259,10 +11389,12 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
11259
11389
  if (pendingBranch) {
11260
11390
  suspense.pendingBranch = newBranch;
11261
11391
  if (isSameVNodeType(pendingBranch, newBranch)) {
11392
+ suspense.deps++;
11262
11393
  patch(
11263
11394
  pendingBranch,
11264
11395
  newBranch,
11265
- suspense.hiddenContainer,
11396
+ // a hydrating pending branch is adopted SSR DOM, already in place
11397
+ isHydrating ? container : suspense.hiddenContainer,
11266
11398
  null,
11267
11399
  parentComponent,
11268
11400
  suspense,
@@ -11270,6 +11402,7 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, sl
11270
11402
  slotScopeIds,
11271
11403
  optimized
11272
11404
  );
11405
+ suspense.deps--;
11273
11406
  if (suspense.deps <= 0) {
11274
11407
  suspense.resolve();
11275
11408
  } else if (isInFallback) {
@@ -11535,6 +11668,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11535
11668
  suspense.effects = [];
11536
11669
  if (isSuspensible) {
11537
11670
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
11671
+ parentSuspenseId = void 0;
11538
11672
  parentSuspense.deps--;
11539
11673
  if (parentSuspense.deps === 0 && !sync) {
11540
11674
  parentSuspense.resolve();
@@ -11595,7 +11729,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11595
11729
  next() {
11596
11730
  return suspense.activeBranch && next(suspense.activeBranch);
11597
11731
  },
11598
- registerDep(instance, setupRenderEffect, optimized2) {
11732
+ // `namespace` intentionally shadows the boundary's own: the dep must be
11733
+ // mounted with the namespace of the position it was rendered at, which can
11734
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
11735
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
11599
11736
  const isInPendingSuspense = !!suspense.pendingBranch;
11600
11737
  if (isInPendingSuspense) {
11601
11738
  suspense.deps++;
@@ -11608,6 +11745,12 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11608
11745
  return;
11609
11746
  }
11610
11747
  unsetCurrentInstance();
11748
+ if (!instance.scope.active) {
11749
+ if (isInPendingSuspense && --suspense.deps === 0) {
11750
+ suspense.resolve();
11751
+ }
11752
+ return;
11753
+ }
11611
11754
  instance.asyncResolved = true;
11612
11755
  const { vnode: vnode2 } = instance;
11613
11756
  {
@@ -11629,7 +11772,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11629
11772
  // consider the comment placeholder case.
11630
11773
  hydratedEl ? null : next(instance.subTree),
11631
11774
  suspense,
11632
- namespace,
11775
+ namespace2,
11633
11776
  optimized2
11634
11777
  );
11635
11778
  if (placeholder) {
@@ -12093,7 +12236,8 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
12093
12236
  el: vnode.el,
12094
12237
  anchor: vnode.anchor,
12095
12238
  ctx: vnode.ctx,
12096
- ce: vnode.ce
12239
+ ce: vnode.ce,
12240
+ cacheIndex: vnode.cacheIndex
12097
12241
  };
12098
12242
  if (transition && cloneTransition) {
12099
12243
  setTransitionHooks(
@@ -12229,6 +12373,9 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
12229
12373
 
12230
12374
  const emptyAppContext = createAppContext();
12231
12375
  let uid = 0;
12376
+ function getNextUid() {
12377
+ return uid;
12378
+ }
12232
12379
  function createComponentInstance(vnode, parent, suspense) {
12233
12380
  const type = vnode.type;
12234
12381
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -12913,7 +13060,7 @@ function isMemoSame(cached, memo) {
12913
13060
  return true;
12914
13061
  }
12915
13062
 
12916
- const version = "3.5.42";
13063
+ const version = "3.5.44";
12917
13064
  const warn = warn$1 ;
12918
13065
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12919
13066
  const devtools = devtools$1 ;
@@ -13465,7 +13612,9 @@ function patchStyle(el, prev, next) {
13465
13612
  }
13466
13613
  }
13467
13614
  if (vShowOriginalDisplay in el) {
13468
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13615
+ if (!isCssString || prev !== next) {
13616
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
13617
+ }
13469
13618
  if (el[vShowHidden]) {
13470
13619
  style.display = "none";
13471
13620
  }
@@ -13991,7 +14140,9 @@ class VueElement extends BaseClass {
13991
14140
  "Custom element style injection is not supported when using shadowRoot: false"
13992
14141
  );
13993
14142
  }
13994
- this._mount(def);
14143
+ if (this._connected) {
14144
+ this._mount(def);
14145
+ }
13995
14146
  };
13996
14147
  const asyncDef = this._def.__asyncLoader;
13997
14148
  if (asyncDef) {
@@ -14361,6 +14512,7 @@ const positionMap = /* @__PURE__ */ new WeakMap();
14361
14512
  const newPositionMap = /* @__PURE__ */ new WeakMap();
14362
14513
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
14363
14514
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
14515
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
14364
14516
  const decorate = (t) => {
14365
14517
  delete t.props.mode;
14366
14518
  {
@@ -14379,21 +14531,30 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14379
14531
  const state = useTransitionState();
14380
14532
  let prevChildren;
14381
14533
  let children;
14382
- onUpdated(() => {
14383
- if (!prevChildren.length) {
14384
- return;
14534
+ let origins;
14535
+ let moves;
14536
+ const willMove = () => {
14537
+ if (moves === void 0) {
14538
+ moves = prevChildren.length > 0 && hasCSSTransform(
14539
+ prevChildren[0].el,
14540
+ instance.vnode.el,
14541
+ resolveMoveClass(props)
14542
+ );
14385
14543
  }
14386
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
14387
- if (!hasCSSTransform(
14388
- prevChildren[0].el,
14389
- instance.vnode.el,
14390
- moveClass
14391
- )) {
14544
+ return moves;
14545
+ };
14546
+ onUpdated(() => {
14547
+ pendingGroups.delete(instance);
14548
+ if (!willMove()) {
14392
14549
  prevChildren = [];
14550
+ origins = void 0;
14393
14551
  return;
14394
14552
  }
14553
+ const moveClass = resolveMoveClass(props);
14395
14554
  prevChildren.forEach(callPendingCbs);
14396
- prevChildren.forEach(recordPosition);
14555
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
14556
+ origins = void 0;
14557
+ prevChildren.forEach((c) => recordPosition(c, shift));
14397
14558
  const movedChildren = prevChildren.filter(applyTranslation);
14398
14559
  forceReflow(instance.vnode.el);
14399
14560
  movedChildren.forEach((c) => {
@@ -14426,6 +14587,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14426
14587
  tag = "span";
14427
14588
  }
14428
14589
  prevChildren = [];
14590
+ moves = void 0;
14429
14591
  if (children) {
14430
14592
  for (let i = 0; i < children.length; i++) {
14431
14593
  const child = children[i];
@@ -14457,6 +14619,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
14457
14619
  warn(`<TransitionGroup> children must be keyed.`);
14458
14620
  }
14459
14621
  }
14622
+ if (prevChildren.length) {
14623
+ origins = getOrigins(instance);
14624
+ pendingGroups.set(instance, willMove);
14625
+ }
14460
14626
  return createVNode(tag, null, children);
14461
14627
  };
14462
14628
  }
@@ -14471,8 +14637,11 @@ function callPendingCbs(c) {
14471
14637
  el[enterCbKey]();
14472
14638
  }
14473
14639
  }
14474
- function recordPosition(c) {
14475
- newPositionMap.set(c, getPosition(c.el));
14640
+ function resolveMoveClass(props) {
14641
+ return props.moveClass || `${props.name || "v"}-move`;
14642
+ }
14643
+ function recordPosition(c, shift) {
14644
+ newPositionMap.set(c, getPosition(c.el, shift));
14476
14645
  }
14477
14646
  function applyTranslation(c) {
14478
14647
  const oldPos = positionMap.get(c);
@@ -14496,13 +14665,41 @@ function applyTranslation(c) {
14496
14665
  return c;
14497
14666
  }
14498
14667
  }
14499
- function getPosition(el) {
14668
+ function getPosition(el, shift) {
14500
14669
  const rect = el.getBoundingClientRect();
14501
14670
  return {
14502
- left: rect.left,
14503
- top: rect.top
14671
+ left: rect.left - (shift ? shift.left : 0),
14672
+ top: rect.top - (shift ? shift.top : 0)
14504
14673
  };
14505
14674
  }
14675
+ function getOrigins(instance) {
14676
+ let origins;
14677
+ for (let group = instance.parent; group; group = group.parent) {
14678
+ const willMove = pendingGroups.get(group);
14679
+ if (willMove) {
14680
+ const item = findItem(group.vnode.el, instance.vnode.el);
14681
+ if (item) {
14682
+ (origins || (origins = [])).push(
14683
+ extend(getPosition(item), { item, willMove })
14684
+ );
14685
+ }
14686
+ }
14687
+ }
14688
+ return origins;
14689
+ }
14690
+ function findItem(root, node) {
14691
+ const container = root.nodeType === 1 ? root : root.parentNode;
14692
+ while (node && node.parentNode !== container) {
14693
+ node = node.parentNode;
14694
+ }
14695
+ if (node && node.nodeType === 1) {
14696
+ return node;
14697
+ }
14698
+ }
14699
+ function getOriginShift(origins, root) {
14700
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
14701
+ return origin && getPosition(origin.item, origin);
14702
+ }
14506
14703
  function hasCSSTransform(el, root, moveClass) {
14507
14704
  const clone = el.cloneNode();
14508
14705
  const _vtc = el[vtcKey];
@@ -16532,7 +16729,8 @@ const errorMessages = {
16532
16729
  [42]: `v-model value must be a valid JavaScript member expression.`,
16533
16730
  [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,
16534
16731
  [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.
16535
- Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
16732
+ Use a v-bind binding combined with a v-on listener that emits update:x event instead.
16733
+ For props declared with defineModel(), assign the returned ref to a variable and use v-model on that variable.`,
16536
16734
  [45]: `v-model cannot be used on a const binding because it is not writable.`,
16537
16735
  [46]: `Error parsing JavaScript expression: `,
16538
16736
  [47]: `<KeepAlive> expects exactly one child component.`,
@@ -19965,7 +20163,7 @@ const transformFor = createStructuralDirectiveTransform(
19965
20163
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
19966
20164
  createCompoundExpression([
19967
20165
  `if (_cached && _cached.el`,
19968
- ...keyExp ? [` && _cached.key === `, keyExp] : [],
20166
+ ...keyExp ? [` && _cached.key === (`, keyExp, `)`] : [],
19969
20167
  ` && ${context.helperString(
19970
20168
  IS_MEMO_SAME
19971
20169
  )}(_cached, _memo)) return _cached`
@@ -22066,7 +22264,8 @@ const transformTransition = (node, context) => {
22066
22264
  if (!node.children.length) {
22067
22265
  return;
22068
22266
  }
22069
- if (hasMultipleChildren(node)) {
22267
+ const multipleChildren = hasMultipleChildren(node);
22268
+ if (multipleChildren) {
22070
22269
  context.onError(
22071
22270
  createDOMCompilerError(
22072
22271
  63,
@@ -22261,8 +22460,9 @@ function stringifyNode(node, context) {
22261
22460
  }
22262
22461
  }
22263
22462
  function stringifyElement(node, context) {
22463
+ var _a;
22264
22464
  let res = `<${node.tag}`;
22265
- let innerHTML = "";
22465
+ let innerHTML = void 0;
22266
22466
  for (let i = 0; i < node.props.length; i++) {
22267
22467
  const p = node.props[i];
22268
22468
  if (p.type === 6) {
@@ -22296,7 +22496,7 @@ function stringifyElement(node, context) {
22296
22496
  )}"`;
22297
22497
  }
22298
22498
  } else if (p.name === "html") {
22299
- innerHTML = evaluateConstant(p.exp);
22499
+ innerHTML = (_a = evaluateConstant(p.exp)) != null ? _a : "";
22300
22500
  } else if (p.name === "text") {
22301
22501
  innerHTML = escapeHtml(
22302
22502
  toDisplayString(evaluateConstant(p.exp))
@@ -22308,7 +22508,7 @@ function stringifyElement(node, context) {
22308
22508
  res += ` ${context.scopeId}`;
22309
22509
  }
22310
22510
  res += `>`;
22311
- if (innerHTML) {
22511
+ if (innerHTML !== void 0) {
22312
22512
  res += innerHTML;
22313
22513
  } else {
22314
22514
  for (let i = 0; i < node.children.length; i++) {
@@ -22530,7 +22730,8 @@ const validateHtmlNesting = (node, context) => {
22530
22730
 
22531
22731
  const DOMNodeTransforms = [
22532
22732
  transformStyle,
22533
- ...[transformTransition, validateHtmlNesting]
22733
+ transformTransition,
22734
+ ...[validateHtmlNesting]
22534
22735
  ];
22535
22736
  const DOMDirectiveTransforms = {
22536
22737
  cloak: noopDirectiveTransform,