vue 3.2.20 → 3.2.21

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.
@@ -1649,11 +1649,12 @@ var Vue = (function (exports) {
1649
1649
  }
1650
1650
 
1651
1651
  let buffer = [];
1652
+ let devtoolsNotInstalled = false;
1652
1653
  function emit(event, ...args) {
1653
1654
  if (exports.devtools) {
1654
1655
  exports.devtools.emit(event, ...args);
1655
1656
  }
1656
- else {
1657
+ else if (!devtoolsNotInstalled) {
1657
1658
  buffer.push({ event, args });
1658
1659
  }
1659
1660
  }
@@ -1664,7 +1665,13 @@ var Vue = (function (exports) {
1664
1665
  buffer.forEach(({ event, args }) => exports.devtools.emit(event, ...args));
1665
1666
  buffer = [];
1666
1667
  }
1667
- else {
1668
+ else if (
1669
+ // handle late devtools injection - only do this if we are in an actual
1670
+ // browser environment to avoid the timer handle stalling test runner exit
1671
+ // (#4815)
1672
+ // eslint-disable-next-line no-restricted-globals
1673
+ typeof window !== 'undefined' &&
1674
+ !navigator.userAgent.includes('jsdom')) {
1668
1675
  const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =
1669
1676
  target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);
1670
1677
  replay.push((newHook) => {
@@ -1673,9 +1680,18 @@ var Vue = (function (exports) {
1673
1680
  // clear buffer after 3s - the user probably doesn't have devtools installed
1674
1681
  // at all, and keeping the buffer will cause memory leaks (#4738)
1675
1682
  setTimeout(() => {
1676
- buffer = [];
1683
+ if (!exports.devtools) {
1684
+ target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
1685
+ devtoolsNotInstalled = true;
1686
+ buffer = [];
1687
+ }
1677
1688
  }, 3000);
1678
1689
  }
1690
+ else {
1691
+ // non-browser env, assume not installed
1692
+ devtoolsNotInstalled = true;
1693
+ buffer = [];
1694
+ }
1679
1695
  }
1680
1696
  function devtoolsInitApp(app, version) {
1681
1697
  emit("app:init" /* APP_INIT */, app, version, {
@@ -4463,7 +4479,7 @@ var Vue = (function (exports) {
4463
4479
  [bar, this.y]
4464
4480
  ])
4465
4481
  */
4466
- const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text');
4482
+ const isBuiltInDirective = /*#__PURE__*/ makeMap('bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo');
4467
4483
  function validateDirectiveName(name) {
4468
4484
  if (isBuiltInDirective(name)) {
4469
4485
  warn$1('Do not use built-in directive ids as custom directive id: ' + name);
@@ -9020,7 +9036,7 @@ var Vue = (function (exports) {
9020
9036
  }
9021
9037
 
9022
9038
  // Core API ------------------------------------------------------------------
9023
- const version = "3.2.20";
9039
+ const version = "3.2.21";
9024
9040
  /**
9025
9041
  * SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
9026
9042
  * @internal
@@ -9142,16 +9158,8 @@ var Vue = (function (exports) {
9142
9158
 
9143
9159
  function patchStyle(el, prev, next) {
9144
9160
  const style = el.style;
9145
- const currentDisplay = style.display;
9146
- if (!next) {
9147
- el.removeAttribute('style');
9148
- }
9149
- else if (isString(next)) {
9150
- if (prev !== next) {
9151
- style.cssText = next;
9152
- }
9153
- }
9154
- else {
9161
+ const isCssString = isString(next);
9162
+ if (next && !isCssString) {
9155
9163
  for (const key in next) {
9156
9164
  setStyle(style, key, next[key]);
9157
9165
  }
@@ -9163,11 +9171,22 @@ var Vue = (function (exports) {
9163
9171
  }
9164
9172
  }
9165
9173
  }
9166
- // indicates that the `display` of the element is controlled by `v-show`,
9167
- // so we always keep the current `display` value regardless of the `style` value,
9168
- // thus handing over control to `v-show`.
9169
- if ('_vod' in el) {
9170
- style.display = currentDisplay;
9174
+ else {
9175
+ const currentDisplay = style.display;
9176
+ if (isCssString) {
9177
+ if (prev !== next) {
9178
+ style.cssText = next;
9179
+ }
9180
+ }
9181
+ else if (prev) {
9182
+ el.removeAttribute('style');
9183
+ }
9184
+ // indicates that the `display` of the element is controlled by `v-show`,
9185
+ // so we always keep the current `display` value regardless of the `style`
9186
+ // value, thus handing over control to `v-show`.
9187
+ if ('_vod' in el) {
9188
+ style.display = currentDisplay;
9189
+ }
9171
9190
  }
9172
9191
  }
9173
9192
  const importantRE = /\s*!important$/;
@@ -9513,22 +9532,11 @@ var Vue = (function (exports) {
9513
9532
  }
9514
9533
  this.attachShadow({ mode: 'open' });
9515
9534
  }
9516
- // set initial attrs
9517
- for (let i = 0; i < this.attributes.length; i++) {
9518
- this._setAttr(this.attributes[i].name);
9519
- }
9520
- // watch future attr changes
9521
- new MutationObserver(mutations => {
9522
- for (const m of mutations) {
9523
- this._setAttr(m.attributeName);
9524
- }
9525
- }).observe(this, { attributes: true });
9526
9535
  }
9527
9536
  connectedCallback() {
9528
9537
  this._connected = true;
9529
9538
  if (!this._instance) {
9530
9539
  this._resolveDef();
9531
- this._update();
9532
9540
  }
9533
9541
  }
9534
9542
  disconnectedCallback() {
@@ -9547,8 +9555,18 @@ var Vue = (function (exports) {
9547
9555
  if (this._resolved) {
9548
9556
  return;
9549
9557
  }
9558
+ this._resolved = true;
9559
+ // set initial attrs
9560
+ for (let i = 0; i < this.attributes.length; i++) {
9561
+ this._setAttr(this.attributes[i].name);
9562
+ }
9563
+ // watch future attr changes
9564
+ new MutationObserver(mutations => {
9565
+ for (const m of mutations) {
9566
+ this._setAttr(m.attributeName);
9567
+ }
9568
+ }).observe(this, { attributes: true });
9550
9569
  const resolve = (def) => {
9551
- this._resolved = true;
9552
9570
  const { props, styles } = def;
9553
9571
  const hasOptions = !isArray(props);
9554
9572
  const rawKeys = props ? (hasOptions ? Object.keys(props) : props) : [];
@@ -9563,14 +9581,11 @@ var Vue = (function (exports) {
9563
9581
  }
9564
9582
  }
9565
9583
  }
9566
- if (numberProps) {
9567
- this._numberProps = numberProps;
9568
- this._update();
9569
- }
9584
+ this._numberProps = numberProps;
9570
9585
  // check if there are props set pre-upgrade or connect
9571
9586
  for (const key of Object.keys(this)) {
9572
9587
  if (key[0] !== '_') {
9573
- this._setProp(key, this[key]);
9588
+ this._setProp(key, this[key], true, false);
9574
9589
  }
9575
9590
  }
9576
9591
  // defining getter/setters on prototype
@@ -9584,7 +9599,10 @@ var Vue = (function (exports) {
9584
9599
  }
9585
9600
  });
9586
9601
  }
9602
+ // apply CSS
9587
9603
  this._applyStyles(styles);
9604
+ // initial render
9605
+ this._update();
9588
9606
  };
9589
9607
  const asyncDef = this._def.__asyncLoader;
9590
9608
  if (asyncDef) {
@@ -9610,10 +9628,10 @@ var Vue = (function (exports) {
9610
9628
  /**
9611
9629
  * @internal
9612
9630
  */
9613
- _setProp(key, val, shouldReflect = true) {
9631
+ _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
9614
9632
  if (val !== this._props[key]) {
9615
9633
  this._props[key] = val;
9616
- if (this._instance) {
9634
+ if (shouldUpdate && this._instance) {
9617
9635
  this._update();
9618
9636
  }
9619
9637
  // reflect