lwc 2.31.6 → 2.31.8

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.
Files changed (35) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +163 -121
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +163 -121
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +117 -12
  5. package/dist/engine-dom/iife/es5/engine-dom.js +290 -182
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +219 -84
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +163 -121
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +117 -12
  11. package/dist/engine-dom/umd/es5/engine-dom.js +290 -182
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +219 -84
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +124 -73
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +124 -73
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +3 -3
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +3 -3
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +3 -3
  20. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  22. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +3 -3
  23. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +3 -3
  24. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  25. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  26. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  27. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  28. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  29. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  30. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  31. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  32. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  33. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  34. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  35. package/package.json +7 -7
@@ -349,9 +349,9 @@
349
349
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
350
350
  */
351
351
  // Increment whenever the LWC template compiler changes
352
- var LWC_VERSION = "2.31.6";
352
+ var LWC_VERSION = "2.31.8";
353
353
  var LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
354
- /** version: 2.31.6 */
354
+ /** version: 2.31.8 */
355
355
 
356
356
  /**
357
357
  * Copyright (C) 2018 salesforce.com, inc.
@@ -432,7 +432,7 @@
432
432
  patch$1(propName);
433
433
  }
434
434
  }
435
- /** version: 2.31.6 */
435
+ /** version: 2.31.8 */
436
436
 
437
437
  /**
438
438
  * Copyright (C) 2018 salesforce.com, inc.
@@ -514,7 +514,7 @@
514
514
  setFeatureFlag(name, value);
515
515
  }
516
516
  }
517
- /** version: 2.31.6 */
517
+ /** version: 2.31.8 */
518
518
 
519
519
  /*
520
520
  * Copyright (c) 2018, salesforce.com, inc.
@@ -3190,6 +3190,123 @@
3190
3190
  freeze(BaseBridgeElement);
3191
3191
  seal(BaseBridgeElement.prototype);
3192
3192
 
3193
+ /*
3194
+ * Copyright (c) 2023, salesforce.com, inc.
3195
+ * All rights reserved.
3196
+ * SPDX-License-Identifier: MIT
3197
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
3198
+ */
3199
+ var supportsWeakRefs = typeof WeakRef === 'function' && typeof FinalizationRegistry === 'function';
3200
+ // In browsers that doesn't support WeakRefs, the values will still leak, but at least the keys won't
3201
+ var LegacyWeakMultiMap = /*#__PURE__*/function () {
3202
+ function LegacyWeakMultiMap() {
3203
+ _classCallCheck(this, LegacyWeakMultiMap);
3204
+ this._map = new WeakMap();
3205
+ }
3206
+ _createClass(LegacyWeakMultiMap, [{
3207
+ key: "_getValues",
3208
+ value: function _getValues(key) {
3209
+ var values = this._map.get(key);
3210
+ if (isUndefined$1(values)) {
3211
+ values = new Set();
3212
+ this._map.set(key, values);
3213
+ }
3214
+ return values;
3215
+ }
3216
+ }, {
3217
+ key: "get",
3218
+ value: function get(key) {
3219
+ return this._getValues(key);
3220
+ }
3221
+ }, {
3222
+ key: "add",
3223
+ value: function add(key, vm) {
3224
+ var set = this._getValues(key);
3225
+ set.add(vm);
3226
+ }
3227
+ }, {
3228
+ key: "delete",
3229
+ value: function _delete(key) {
3230
+ this._map.delete(key);
3231
+ }
3232
+ }]);
3233
+ return LegacyWeakMultiMap;
3234
+ }(); // This implementation relies on the WeakRef/FinalizationRegistry proposal.
3235
+ // For some background, see: https://github.com/tc39/proposal-weakrefs
3236
+ var ModernWeakMultiMap = /*#__PURE__*/function () {
3237
+ function ModernWeakMultiMap() {
3238
+ _classCallCheck(this, ModernWeakMultiMap);
3239
+ this._map = new WeakMap();
3240
+ this._registry = new FinalizationRegistry(function (weakRefs) {
3241
+ // This should be considered an optional cleanup method to remove GC'ed values from their respective arrays.
3242
+ // JS VMs are not obligated to call FinalizationRegistry callbacks.
3243
+ // Work backwards, removing stale VMs
3244
+ for (var _i11 = weakRefs.length - 1; _i11 >= 0; _i11--) {
3245
+ var vm = weakRefs[_i11].deref();
3246
+ if (isUndefined$1(vm)) {
3247
+ ArraySplice.call(weakRefs, _i11, 1); // remove
3248
+ }
3249
+ }
3250
+ });
3251
+ }
3252
+ _createClass(ModernWeakMultiMap, [{
3253
+ key: "_getWeakRefs",
3254
+ value: function _getWeakRefs(key) {
3255
+ var weakRefs = this._map.get(key);
3256
+ if (isUndefined$1(weakRefs)) {
3257
+ weakRefs = [];
3258
+ this._map.set(key, weakRefs);
3259
+ }
3260
+ return weakRefs;
3261
+ }
3262
+ }, {
3263
+ key: "get",
3264
+ value: function get(key) {
3265
+ var weakRefs = this._getWeakRefs(key);
3266
+ var result = new Set();
3267
+ var _iterator4 = _createForOfIteratorHelper(weakRefs),
3268
+ _step4;
3269
+ try {
3270
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
3271
+ var weakRef = _step4.value;
3272
+ var vm = weakRef.deref();
3273
+ if (!isUndefined$1(vm)) {
3274
+ result.add(vm);
3275
+ }
3276
+ }
3277
+ } catch (err) {
3278
+ _iterator4.e(err);
3279
+ } finally {
3280
+ _iterator4.f();
3281
+ }
3282
+ return result;
3283
+ }
3284
+ }, {
3285
+ key: "add",
3286
+ value: function add(key, value) {
3287
+ var weakRefs = this._getWeakRefs(key);
3288
+ // We could check for duplicate values here, but it doesn't seem worth it.
3289
+ // We transform the output into a Set anyway
3290
+ ArrayPush$1.call(weakRefs, new WeakRef(value));
3291
+ // It's important here not to leak the second argument, which is the "held value." The FinalizationRegistry
3292
+ // effectively creates a strong reference between the first argument (the "target") and the held value. When
3293
+ // the target is GC'ed, the callback is called, and then the held value is GC'ed.
3294
+ // Putting the key here would mean the key is not GC'ed until the value is GC'ed, which defeats the purpose
3295
+ // of the WeakMap. Whereas putting the weakRefs array here is fine, because it doesn't have a strong reference
3296
+ // to anything. See also this example:
3297
+ // https://gist.github.com/nolanlawson/79a3d36e8e6cc25c5048bb17c1795aea
3298
+ this._registry.register(value, weakRefs);
3299
+ }
3300
+ }, {
3301
+ key: "delete",
3302
+ value: function _delete(key) {
3303
+ this._map.delete(key);
3304
+ }
3305
+ }]);
3306
+ return ModernWeakMultiMap;
3307
+ }();
3308
+ var WeakMultiMap = supportsWeakRefs ? ModernWeakMultiMap : LegacyWeakMultiMap;
3309
+
3193
3310
  /*
3194
3311
  * Copyright (c) 2020, salesforce.com, inc.
3195
3312
  * All rights reserved.
@@ -3199,46 +3316,65 @@
3199
3316
  var swappedTemplateMap = new WeakMap();
3200
3317
  var swappedComponentMap = new WeakMap();
3201
3318
  var swappedStyleMap = new WeakMap();
3202
- var activeTemplates = new WeakMap();
3203
- var activeComponents = new WeakMap();
3204
- var activeStyles = new WeakMap();
3319
+ // The important thing here is the weak values – VMs are transient (one per component instance) and should be GC'ed,
3320
+ // so we don't want to create strong references to them.
3321
+ // The weak keys are kind of useless, because Templates, LightningElementConstructors, and StylesheetFactories are
3322
+ // never GC'ed. But maybe they will be someday, so we may as well use weak keys too.
3323
+ var activeTemplates = new WeakMultiMap();
3324
+ var activeComponents = new WeakMultiMap();
3325
+ var activeStyles = new WeakMultiMap();
3205
3326
  function rehydrateHotTemplate(tpl) {
3206
3327
  var list = activeTemplates.get(tpl);
3207
- if (!isUndefined$1(list)) {
3208
- list.forEach(function (vm) {
3328
+ var _iterator5 = _createForOfIteratorHelper(list),
3329
+ _step5;
3330
+ try {
3331
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
3332
+ var vm = _step5.value;
3209
3333
  if (isFalse(vm.isDirty)) {
3210
3334
  // forcing the vm to rehydrate in the micro-task:
3211
3335
  markComponentAsDirty(vm);
3212
3336
  scheduleRehydration(vm);
3213
3337
  }
3214
- });
3215
- // resetting the Set to release the memory of those vm references
3216
- // since they are not longer related to this template, instead
3338
+ }
3339
+ // Resetting the Set since these VMs are no longer related to this template, instead
3217
3340
  // they will get re-associated once these instances are rehydrated.
3218
- list.clear();
3341
+ } catch (err) {
3342
+ _iterator5.e(err);
3343
+ } finally {
3344
+ _iterator5.f();
3219
3345
  }
3346
+ activeTemplates.delete(tpl);
3220
3347
  return true;
3221
3348
  }
3222
3349
  function rehydrateHotStyle(style) {
3223
3350
  var list = activeStyles.get(style);
3224
- if (!isUndefined$1(list)) {
3225
- list.forEach(function (vm) {
3351
+ var _iterator6 = _createForOfIteratorHelper(list),
3352
+ _step6;
3353
+ try {
3354
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
3355
+ var vm = _step6.value;
3226
3356
  // if a style definition is swapped, we must reset
3227
3357
  // vm's template content in the next micro-task:
3228
3358
  forceRehydration(vm);
3229
- });
3230
- // resetting the Set to release the memory of those vm references
3231
- // since they are not longer related to this style, instead
3359
+ }
3360
+ // Resetting the Set since these VMs are no longer related to this style, instead
3232
3361
  // they will get re-associated once these instances are rehydrated.
3233
- list.clear();
3362
+ } catch (err) {
3363
+ _iterator6.e(err);
3364
+ } finally {
3365
+ _iterator6.f();
3234
3366
  }
3367
+ activeStyles.delete(style);
3235
3368
  return true;
3236
3369
  }
3237
3370
  function rehydrateHotComponent(Ctor) {
3238
3371
  var list = activeComponents.get(Ctor);
3239
3372
  var canRefreshAllInstances = true;
3240
- if (!isUndefined$1(list)) {
3241
- list.forEach(function (vm) {
3373
+ var _iterator7 = _createForOfIteratorHelper(list),
3374
+ _step7;
3375
+ try {
3376
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
3377
+ var vm = _step7.value;
3242
3378
  var owner = vm.owner;
3243
3379
  if (!isNull(owner)) {
3244
3380
  // if a component class definition is swapped, we must reset
@@ -3253,12 +3389,15 @@
3253
3389
  // for example: reload the entire page.
3254
3390
  canRefreshAllInstances = false;
3255
3391
  }
3256
- });
3257
- // resetting the Set to release the memory of those vm references
3258
- // since they are not longer related to this constructor, instead
3392
+ }
3393
+ // resetting the Set since these VMs are no longer related to this constructor, instead
3259
3394
  // they will get re-associated once these instances are rehydrated.
3260
- list.clear();
3395
+ } catch (err) {
3396
+ _iterator7.e(err);
3397
+ } finally {
3398
+ _iterator7.f();
3261
3399
  }
3400
+ activeComponents.delete(Ctor);
3262
3401
  return canRefreshAllInstances;
3263
3402
  }
3264
3403
  function getTemplateOrSwappedTemplate(tpl) {
@@ -3304,75 +3443,36 @@
3304
3443
  }
3305
3444
  // tracking active component
3306
3445
  var Ctor = vm.def.ctor;
3307
- var componentVMs = activeComponents.get(Ctor);
3308
- if (isUndefined$1(componentVMs)) {
3309
- componentVMs = new Set();
3310
- activeComponents.set(Ctor, componentVMs);
3311
- }
3312
3446
  // this will allow us to keep track of the hot components
3313
- componentVMs.add(vm);
3447
+ activeComponents.add(Ctor, vm);
3314
3448
  // tracking active template
3315
3449
  var tpl = vm.cmpTemplate;
3316
3450
  if (tpl) {
3317
- var templateVMs = activeTemplates.get(tpl);
3318
- if (isUndefined$1(templateVMs)) {
3319
- templateVMs = new Set();
3320
- activeTemplates.set(tpl, templateVMs);
3321
- }
3322
3451
  // this will allow us to keep track of the templates that are
3323
3452
  // being used by a hot component
3324
- templateVMs.add(vm);
3453
+ activeTemplates.add(tpl, vm);
3325
3454
  // tracking active styles associated to template
3326
3455
  var stylesheets = tpl.stylesheets;
3327
3456
  if (!isUndefined$1(stylesheets)) {
3328
- flattenStylesheets(stylesheets).forEach(function (stylesheet) {
3329
- // this is necessary because we don't hold the list of styles
3330
- // in the vm, we only hold the selected (already swapped template)
3331
- // but the styles attached to the template might not be the actual
3332
- // active ones, but the swapped versions of those.
3333
- stylesheet = getStyleOrSwappedStyle(stylesheet);
3334
- var stylesheetVMs = activeStyles.get(stylesheet);
3335
- if (isUndefined$1(stylesheetVMs)) {
3336
- stylesheetVMs = new Set();
3337
- activeStyles.set(stylesheet, stylesheetVMs);
3338
- }
3339
- // this will allow us to keep track of the stylesheet that are
3340
- // being used by a hot component
3341
- stylesheetVMs.add(vm);
3342
- });
3343
- }
3344
- }
3345
- }
3346
- function removeActiveVM(vm) {
3347
- if (process.env.NODE_ENV === 'production') {
3348
- // this method should never leak to prod
3349
- throw new ReferenceError();
3350
- }
3351
- // tracking inactive component
3352
- var Ctor = vm.def.ctor;
3353
- var list = activeComponents.get(Ctor);
3354
- if (!isUndefined$1(list)) {
3355
- // deleting the vm from the set to avoid leaking memory
3356
- list.delete(vm);
3357
- }
3358
- // removing inactive template
3359
- var tpl = vm.cmpTemplate;
3360
- if (tpl) {
3361
- list = activeTemplates.get(tpl);
3362
- if (!isUndefined$1(list)) {
3363
- // deleting the vm from the set to avoid leaking memory
3364
- list.delete(vm);
3365
- }
3366
- // removing active styles associated to template
3367
- var styles = tpl.stylesheets;
3368
- if (!isUndefined$1(styles)) {
3369
- flattenStylesheets(styles).forEach(function (style) {
3370
- list = activeStyles.get(style);
3371
- if (!isUndefined$1(list)) {
3372
- // deleting the vm from the set to avoid leaking memory
3373
- list.delete(vm);
3457
+ var _iterator8 = _createForOfIteratorHelper(flattenStylesheets(stylesheets)),
3458
+ _step8;
3459
+ try {
3460
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
3461
+ var stylesheet = _step8.value;
3462
+ // this is necessary because we don't hold the list of styles
3463
+ // in the vm, we only hold the selected (already swapped template)
3464
+ // but the styles attached to the template might not be the actual
3465
+ // active ones, but the swapped versions of those.
3466
+ var swappedStylesheet = getStyleOrSwappedStyle(stylesheet);
3467
+ // this will allow us to keep track of the stylesheet that are
3468
+ // being used by a hot component
3469
+ activeStyles.add(swappedStylesheet, vm);
3374
3470
  }
3375
- });
3471
+ } catch (err) {
3472
+ _iterator8.e(err);
3473
+ } finally {
3474
+ _iterator8.f();
3475
+ }
3376
3476
  }
3377
3477
  }
3378
3478
  }
@@ -3689,8 +3789,8 @@
3689
3789
  function evaluateStylesheetsContent(stylesheets, stylesheetToken, vm) {
3690
3790
  var content = [];
3691
3791
  var root;
3692
- for (var _i11 = 0; _i11 < stylesheets.length; _i11++) {
3693
- var stylesheet = stylesheets[_i11];
3792
+ for (var _i12 = 0; _i12 < stylesheets.length; _i12++) {
3793
+ var stylesheet = stylesheets[_i12];
3694
3794
  if (isArray$1(stylesheet)) {
3695
3795
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
3696
3796
  } else {
@@ -3792,8 +3892,8 @@
3792
3892
  shadowMode = vm.shadowMode,
3793
3893
  insertStylesheet = vm.renderer.insertStylesheet;
3794
3894
  if (renderMode === 1 /* RenderMode.Shadow */ && shadowMode === 1 /* ShadowMode.Synthetic */) {
3795
- for (var _i12 = 0; _i12 < stylesheets.length; _i12++) {
3796
- insertStylesheet(stylesheets[_i12]);
3895
+ for (var _i13 = 0; _i13 < stylesheets.length; _i13++) {
3896
+ insertStylesheet(stylesheets[_i13]);
3797
3897
  }
3798
3898
  } else if (vm.hydrated) {
3799
3899
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
@@ -3806,8 +3906,8 @@
3806
3906
  var root = getNearestNativeShadowComponent(vm);
3807
3907
  // null root means a global style
3808
3908
  var target = isNull(root) ? undefined : root.shadowRoot;
3809
- for (var _i13 = 0; _i13 < stylesheets.length; _i13++) {
3810
- insertStylesheet(stylesheets[_i13], target);
3909
+ for (var _i14 = 0; _i14 < stylesheets.length; _i14++) {
3910
+ insertStylesheet(stylesheets[_i14], target);
3811
3911
  }
3812
3912
  }
3813
3913
  return null;
@@ -4121,8 +4221,8 @@
4121
4221
  return;
4122
4222
  }
4123
4223
  var setCSSStyleProperty = renderer.setCSSStyleProperty;
4124
- for (var _i14 = 0; _i14 < styleDecls.length; _i14++) {
4125
- var _styleDecls$_i = _slicedToArray(styleDecls[_i14], 3),
4224
+ for (var _i15 = 0; _i15 < styleDecls.length; _i15++) {
4225
+ var _styleDecls$_i = _slicedToArray(styleDecls[_i15], 3),
4126
4226
  prop = _styleDecls$_i[0],
4127
4227
  value = _styleDecls$_i[1],
4128
4228
  important = _styleDecls$_i[2];
@@ -4590,8 +4690,8 @@
4590
4690
  */
4591
4691
  function collectSlots(vm, children, cmpSlotsMapping) {
4592
4692
  var _a, _b;
4593
- for (var _i15 = 0, len = children.length; _i15 < len; _i15 += 1) {
4594
- var vnode = children[_i15];
4693
+ for (var _i16 = 0, len = children.length; _i16 < len; _i16 += 1) {
4694
+ var vnode = children[_i16];
4595
4695
  if (isNull(vnode)) {
4596
4696
  continue;
4597
4697
  }
@@ -4627,8 +4727,8 @@
4627
4727
  markComponentAsDirty(vm);
4628
4728
  return;
4629
4729
  }
4630
- for (var _i16 = 0, len = oldKeys.length; _i16 < len; _i16 += 1) {
4631
- var key = oldKeys[_i16];
4730
+ for (var _i17 = 0, len = oldKeys.length; _i17 < len; _i17 += 1) {
4731
+ var key = oldKeys[_i17];
4632
4732
  if (isUndefined$1(cmpSlotsMapping[key]) || oldSlotsMapping[key].length !== cmpSlotsMapping[key].length) {
4633
4733
  markComponentAsDirty(vm);
4634
4734
  return;
@@ -4751,11 +4851,11 @@
4751
4851
  if (oldStartIdx > oldEndIdx) {
4752
4852
  // There's some cases in which the sub array of vnodes to be inserted is followed by null(s) and an
4753
4853
  // already processed vnode, in such cases the vnodes to be inserted should be before that processed vnode.
4754
- var _i17 = newEndIdx;
4854
+ var _i18 = newEndIdx;
4755
4855
  var n;
4756
4856
  do {
4757
- n = newCh[++_i17];
4758
- } while (!isVNode(n) && _i17 < newChEnd);
4857
+ n = newCh[++_i18];
4858
+ } while (!isVNode(n) && _i18 < newChEnd);
4759
4859
  before = isVNode(n) ? n.elm : null;
4760
4860
  mountVNodes(newCh, parent, renderer, before, newStartIdx, newEndIdx + 1);
4761
4861
  } else {
@@ -4780,9 +4880,9 @@
4780
4880
  // if the old list is not empty, the new list MUST have the same
4781
4881
  // amount of nodes, that's why we call this static children
4782
4882
  var anchor = null;
4783
- for (var _i18 = c2Length - 1; _i18 >= 0; _i18 -= 1) {
4784
- var n1 = c1[_i18];
4785
- var n2 = c2[_i18];
4883
+ for (var _i19 = c2Length - 1; _i19 >= 0; _i19 -= 1) {
4884
+ var n1 = c1[_i19];
4885
+ var n2 = c2[_i19];
4786
4886
  if (n2 !== n1) {
4787
4887
  if (isVNode(n1)) {
4788
4888
  if (isVNode(n2)) {
@@ -4907,8 +5007,8 @@
4907
5007
  if (!isUndefined$1(slotset) && !isUndefined$1(slotset.slotAssignments) && !isUndefined$1(slotset.slotAssignments[slotName]) && slotset.slotAssignments[slotName].length !== 0) {
4908
5008
  var newChildren = [];
4909
5009
  var slotAssignments = slotset.slotAssignments[slotName];
4910
- for (var _i19 = 0; _i19 < slotAssignments.length; _i19++) {
4911
- var vnode = slotAssignments[_i19];
5010
+ for (var _i20 = 0; _i20 < slotAssignments.length; _i20++) {
5011
+ var vnode = slotAssignments[_i20];
4912
5012
  if (!isNull(vnode)) {
4913
5013
  var assignedNodeIsScopedSlot = isVScopedSlotFragment(vnode);
4914
5014
  // The only sniff test for a scoped <slot> element is the presence of `slotData`
@@ -5433,23 +5533,23 @@
5433
5533
  var classAttrToken = hasScopedStyles && hasStyleToken ? " class=\"".concat(stylesheetToken, "\"") : '';
5434
5534
  var attrToken = hasStyleToken && isSyntheticShadow ? ' ' + stylesheetToken : '';
5435
5535
  var htmlFragment = '';
5436
- for (var _i20 = 0, n = keys.length; _i20 < n; _i20++) {
5437
- switch (keys[_i20]) {
5536
+ for (var _i21 = 0, n = keys.length; _i21 < n; _i21++) {
5537
+ switch (keys[_i21]) {
5438
5538
  case 0:
5439
5539
  // styleToken in existing class attr
5440
- htmlFragment += strings[_i20] + classToken;
5540
+ htmlFragment += strings[_i21] + classToken;
5441
5541
  break;
5442
5542
  case 1:
5443
5543
  // styleToken for added class attr
5444
- htmlFragment += strings[_i20] + classAttrToken;
5544
+ htmlFragment += strings[_i21] + classAttrToken;
5445
5545
  break;
5446
5546
  case 2:
5447
5547
  // styleToken as attr
5448
- htmlFragment += strings[_i20] + attrToken;
5548
+ htmlFragment += strings[_i21] + attrToken;
5449
5549
  break;
5450
5550
  case 3:
5451
5551
  // ${1}${2}
5452
- htmlFragment += strings[_i20] + classAttrToken + attrToken;
5552
+ htmlFragment += strings[_i21] + classAttrToken + attrToken;
5453
5553
  break;
5454
5554
  }
5455
5555
  }
@@ -5557,8 +5657,8 @@
5557
5657
  function computeHasScopedStyles(template) {
5558
5658
  var stylesheets = template.stylesheets;
5559
5659
  if (!isUndefined$1(stylesheets)) {
5560
- for (var _i21 = 0; _i21 < stylesheets.length; _i21++) {
5561
- if (isTrue(stylesheets[_i21][KEY__SCOPED_CSS])) {
5660
+ for (var _i22 = 0; _i22 < stylesheets.length; _i22++) {
5661
+ if (isTrue(stylesheets[_i22][KEY__SCOPED_CSS])) {
5562
5662
  return true;
5563
5663
  }
5564
5664
  }
@@ -5746,8 +5846,8 @@
5746
5846
  if (process.env.NODE_ENV !== 'production') {
5747
5847
  assert.isTrue(isObject(service), "Invalid service declaration, ".concat(service, ": service must be an object"));
5748
5848
  }
5749
- for (var _i22 = 0; _i22 < hooks.length; ++_i22) {
5750
- var hookName = hooks[_i22];
5849
+ for (var _i23 = 0; _i23 < hooks.length; ++_i23) {
5850
+ var hookName = hooks[_i23];
5751
5851
  if (hookName in service) {
5752
5852
  var l = Services[hookName];
5753
5853
  if (isUndefined$1(l)) {
@@ -5764,8 +5864,8 @@
5764
5864
  var component = vm.component,
5765
5865
  def = vm.def,
5766
5866
  context = vm.context;
5767
- for (var _i23 = 0, len = cbs.length; _i23 < len; ++_i23) {
5768
- cbs[_i23].call(undefined, component, {}, def, context);
5867
+ for (var _i24 = 0, len = cbs.length; _i24 < len; ++_i24) {
5868
+ cbs[_i24].call(undefined, component, {}, def, context);
5769
5869
  }
5770
5870
  }
5771
5871
 
@@ -5828,9 +5928,6 @@
5828
5928
  runChildNodesDisconnectedCallback(vm);
5829
5929
  runLightChildNodesDisconnectedCallback(vm);
5830
5930
  }
5831
- if (process.env.NODE_ENV !== 'production') {
5832
- removeActiveVM(vm);
5833
- }
5834
5931
  }
5835
5932
  // this method is triggered by the diffing algo only when a vnode from the
5836
5933
  // old vnode.children is removed from the DOM.
@@ -6044,17 +6141,17 @@
6044
6141
  return a.idx - b.idx;
6045
6142
  });
6046
6143
  rehydrateQueue = []; // reset to a new queue
6047
- for (var _i24 = 0, len = vms.length; _i24 < len; _i24 += 1) {
6048
- var vm = vms[_i24];
6144
+ for (var _i25 = 0, len = vms.length; _i25 < len; _i25 += 1) {
6145
+ var vm = vms[_i25];
6049
6146
  try {
6050
6147
  rehydrate(vm);
6051
6148
  } catch (error) {
6052
- if (_i24 + 1 < len) {
6149
+ if (_i25 + 1 < len) {
6053
6150
  // pieces of the queue are still pending to be rehydrated, those should have priority
6054
6151
  if (rehydrateQueue.length === 0) {
6055
6152
  addCallbackToNextTick(flushRehydrationQueue);
6056
6153
  }
6057
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i24 + 1));
6154
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i25 + 1));
6058
6155
  }
6059
6156
  // we need to end the measure before throwing.
6060
6157
  logGlobalOperationEnd(8 /* OperationId.GlobalRehydrate */);
@@ -6123,8 +6220,8 @@
6123
6220
  var vCustomElementCollection = vm.velements;
6124
6221
  // Reporting disconnection for every child in inverse order since they are
6125
6222
  // inserted in reserved order.
6126
- for (var _i25 = vCustomElementCollection.length - 1; _i25 >= 0; _i25 -= 1) {
6127
- var elm = vCustomElementCollection[_i25].elm;
6223
+ for (var _i26 = vCustomElementCollection.length - 1; _i26 >= 0; _i26 -= 1) {
6224
+ var elm = vCustomElementCollection[_i26].elm;
6128
6225
  // There are two cases where the element could be undefined:
6129
6226
  // * when there is an error during the construction phase, and an error
6130
6227
  // boundary picks it, there is a possibility that the VCustomElement
@@ -6155,8 +6252,8 @@
6155
6252
  * defined on its shadow.
6156
6253
  */
6157
6254
  function recursivelyDisconnectChildren(vnodes) {
6158
- for (var _i26 = 0, len = vnodes.length; _i26 < len; _i26 += 1) {
6159
- var vnode = vnodes[_i26];
6255
+ for (var _i27 = 0, len = vnodes.length; _i27 < len; _i27 += 1) {
6256
+ var vnode = vnodes[_i27];
6160
6257
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
6161
6258
  switch (vnode.type) {
6162
6259
  case 2 /* VNodeType.Element */:
@@ -6177,19 +6274,30 @@
6177
6274
  // into snabbdom. Especially useful when the reset is a consequence of an error, in which case the
6178
6275
  // children VNodes might not be representing the current state of the DOM.
6179
6276
  function resetComponentRoot(vm) {
6180
- var children = vm.children,
6181
- renderRoot = vm.renderRoot,
6182
- remove = vm.renderer.remove;
6183
- for (var _i27 = 0, len = children.length; _i27 < len; _i27++) {
6184
- var child = children[_i27];
6185
- if (!isNull(child) && !isUndefined$1(child.elm)) {
6186
- remove(child.elm, renderRoot);
6187
- }
6188
- }
6277
+ recursivelyRemoveChildren(vm.children, vm);
6189
6278
  vm.children = EmptyArray;
6190
6279
  runChildNodesDisconnectedCallback(vm);
6191
6280
  vm.velements = EmptyArray;
6192
6281
  }
6282
+ // Helper function to remove all children of the root node.
6283
+ // If the set of children includes VFragment nodes, we need to remove the children of those nodes too.
6284
+ // Since VFragments can contain other VFragments, we need to traverse the entire of tree of VFragments.
6285
+ // If the set contains no VFragment nodes, no traversal is needed.
6286
+ function recursivelyRemoveChildren(vnodes, vm) {
6287
+ var renderRoot = vm.renderRoot,
6288
+ remove = vm.renderer.remove;
6289
+ for (var _i28 = 0, len = vnodes.length; _i28 < len; _i28 += 1) {
6290
+ var vnode = vnodes[_i28];
6291
+ if (!isNull(vnode)) {
6292
+ // VFragments are special; their .elm property does not point to the root element since they have no single root.
6293
+ if (isVFragment(vnode)) {
6294
+ recursivelyRemoveChildren(vnode.children, vm);
6295
+ } else if (!isUndefined$1(vnode.elm)) {
6296
+ remove(vnode.elm, renderRoot);
6297
+ }
6298
+ }
6299
+ }
6300
+ }
6193
6301
  function scheduleRehydration(vm) {
6194
6302
  if (isTrue(vm.isScheduled)) {
6195
6303
  return;
@@ -6519,16 +6627,16 @@
6519
6627
  }
6520
6628
  function connectWireAdapters(vm) {
6521
6629
  var wiredConnecting = vm.context.wiredConnecting;
6522
- for (var _i28 = 0, len = wiredConnecting.length; _i28 < len; _i28 += 1) {
6523
- wiredConnecting[_i28]();
6630
+ for (var _i29 = 0, len = wiredConnecting.length; _i29 < len; _i29 += 1) {
6631
+ wiredConnecting[_i29]();
6524
6632
  }
6525
6633
  }
6526
6634
  function disconnectWireAdapters(vm) {
6527
6635
  var wiredDisconnecting = vm.context.wiredDisconnecting;
6528
6636
  runWithBoundaryProtection(vm, vm, noop, function () {
6529
6637
  // job
6530
- for (var _i29 = 0, len = wiredDisconnecting.length; _i29 < len; _i29 += 1) {
6531
- wiredDisconnecting[_i29]();
6638
+ for (var _i30 = 0, len = wiredDisconnecting.length; _i30 < len; _i30 += 1) {
6639
+ wiredDisconnecting[_i30]();
6532
6640
  }
6533
6641
  }, noop);
6534
6642
  }
@@ -6767,8 +6875,8 @@
6767
6875
  var nextNode = node;
6768
6876
  var anchor = null;
6769
6877
  var renderer = owner.renderer;
6770
- for (var _i30 = 0; _i30 < children.length; _i30++) {
6771
- var childVnode = children[_i30];
6878
+ for (var _i31 = 0; _i31 < children.length; _i31++) {
6879
+ var childVnode = children[_i31];
6772
6880
  if (!isNull(childVnode)) {
6773
6881
  if (nextNode) {
6774
6882
  nextNode = hydrateNode(nextNode, childVnode, renderer);
@@ -6846,8 +6954,8 @@
6846
6954
  var nodesAreCompatible = true;
6847
6955
  // Validate attributes, though we could always recovery from those by running the update mods.
6848
6956
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
6849
- for (var _i31 = 0, _Object$entries = Object.entries(attrs); _i31 < _Object$entries.length; _i31++) {
6850
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i31], 2),
6957
+ for (var _i32 = 0, _Object$entries = Object.entries(attrs); _i32 < _Object$entries.length; _i32++) {
6958
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i32], 2),
6851
6959
  attrName = _Object$entries$_i[0],
6852
6960
  attrValue = _Object$entries$_i[1];
6853
6961
  var owner = vnode.owner;
@@ -6948,8 +7056,8 @@
6948
7056
  var parsedVnodeStyle = parseStyleText(elmStyle);
6949
7057
  var expectedStyle = [];
6950
7058
  // styleMap is used when style is set to static value.
6951
- for (var _i32 = 0, n = styleDecls.length; _i32 < n; _i32++) {
6952
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i32], 3),
7059
+ for (var _i33 = 0, n = styleDecls.length; _i33 < n; _i33++) {
7060
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i33], 3),
6953
7061
  prop = _styleDecls$_i2[0],
6954
7062
  value = _styleDecls$_i2[1],
6955
7063
  important = _styleDecls$_i2[2];
@@ -7062,11 +7170,11 @@
7062
7170
  function warnOnArrayMutation(stylesheets) {
7063
7171
  // We can't handle users calling Array.prototype.slice.call(tmpl.stylesheets), but
7064
7172
  // we can at least warn when they use the most common mutation methods.
7065
- var _iterator4 = _createForOfIteratorHelper(ARRAY_MUTATION_METHODS),
7066
- _step4;
7173
+ var _iterator9 = _createForOfIteratorHelper(ARRAY_MUTATION_METHODS),
7174
+ _step9;
7067
7175
  try {
7068
7176
  var _loop2 = function _loop2() {
7069
- var prop = _step4.value;
7177
+ var prop = _step9.value;
7070
7178
  var originalArrayMethod = getOriginalArrayMethod(prop);
7071
7179
  stylesheets[prop] = function arrayMutationWarningWrapper() {
7072
7180
  logError("Mutating the \"stylesheets\" array on a template function " + "is deprecated and may be removed in a future version of LWC.");
@@ -7074,13 +7182,13 @@
7074
7182
  return originalArrayMethod.apply(this, arguments);
7075
7183
  };
7076
7184
  };
7077
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
7185
+ for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
7078
7186
  _loop2();
7079
7187
  }
7080
7188
  } catch (err) {
7081
- _iterator4.e(err);
7189
+ _iterator9.e(err);
7082
7190
  } finally {
7083
- _iterator4.f();
7191
+ _iterator9.f();
7084
7192
  }
7085
7193
  }
7086
7194
  // TODO [#2782]: eventually freezeTemplate() will _actually_ freeze the tmpl object. Today it
@@ -7090,11 +7198,11 @@
7090
7198
  if (!isUndefined$1(tmpl.stylesheets)) {
7091
7199
  warnOnArrayMutation(tmpl.stylesheets);
7092
7200
  }
7093
- var _iterator5 = _createForOfIteratorHelper(TEMPLATE_PROPS),
7094
- _step5;
7201
+ var _iterator10 = _createForOfIteratorHelper(TEMPLATE_PROPS),
7202
+ _step10;
7095
7203
  try {
7096
7204
  var _loop3 = function _loop3() {
7097
- var prop = _step5.value;
7205
+ var prop = _step10.value;
7098
7206
  var value = tmpl[prop];
7099
7207
  defineProperty(tmpl, prop, {
7100
7208
  enumerable: true,
@@ -7110,13 +7218,13 @@
7110
7218
  }
7111
7219
  });
7112
7220
  };
7113
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
7221
+ for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
7114
7222
  _loop3();
7115
7223
  }
7116
7224
  } catch (err) {
7117
- _iterator5.e(err);
7225
+ _iterator10.e(err);
7118
7226
  } finally {
7119
- _iterator5.f();
7227
+ _iterator10.f();
7120
7228
  }
7121
7229
  var originalDescriptor = getOwnPropertyDescriptor$1(tmpl, 'stylesheetTokens');
7122
7230
  defineProperty(tmpl, 'stylesheetTokens', {
@@ -7156,7 +7264,7 @@
7156
7264
  }
7157
7265
  return ctor;
7158
7266
  }
7159
- /* version: 2.31.6 */
7267
+ /* version: 2.31.8 */
7160
7268
 
7161
7269
  /*
7162
7270
  * Copyright (c) 2018, salesforce.com, inc.
@@ -7838,17 +7946,17 @@
7838
7946
  function flushPendingWhenDefinedCallbacks(tagName, ctor) {
7839
7947
  var resolvers = pendingWhenDefinedCallbacks.get(tagName);
7840
7948
  if (!isUndefined$1(resolvers)) {
7841
- var _iterator6 = _createForOfIteratorHelper(resolvers),
7842
- _step6;
7949
+ var _iterator11 = _createForOfIteratorHelper(resolvers),
7950
+ _step11;
7843
7951
  try {
7844
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
7845
- var resolver = _step6.value;
7952
+ for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
7953
+ var resolver = _step11.value;
7846
7954
  resolver(ctor);
7847
7955
  }
7848
7956
  } catch (err) {
7849
- _iterator6.e(err);
7957
+ _iterator11.e(err);
7850
7958
  } finally {
7851
- _iterator6.f();
7959
+ _iterator11.f();
7852
7960
  }
7853
7961
  }
7854
7962
  pendingWhenDefinedCallbacks.delete(tagName);
@@ -7898,11 +8006,11 @@
7898
8006
  var awaiting = awaitingUpgrade.get(tagName);
7899
8007
  if (!isUndefined$1(awaiting)) {
7900
8008
  awaitingUpgrade.delete(tagName);
7901
- var _iterator7 = _createForOfIteratorHelper(awaiting),
7902
- _step7;
8009
+ var _iterator12 = _createForOfIteratorHelper(awaiting),
8010
+ _step12;
7903
8011
  try {
7904
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
7905
- var element = _step7.value;
8012
+ for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
8013
+ var element = _step12.value;
7906
8014
  var registeredDefinition = pendingRegistryForElement.get(element);
7907
8015
  // At this point, registeredDefinition should never be undefined because awaitingUpgrade
7908
8016
  // is only populated when we haven't run internalUpgrade yet, and we only populate
@@ -7914,9 +8022,9 @@
7914
8022
  }
7915
8023
  }
7916
8024
  } catch (err) {
7917
- _iterator7.e(err);
8025
+ _iterator12.e(err);
7918
8026
  } finally {
7919
- _iterator7.f();
8027
+ _iterator12.f();
7920
8028
  }
7921
8029
  }
7922
8030
  // If anyone called customElements.whenDefined() and is still waiting for a promise resolution, resolve now
@@ -8187,7 +8295,7 @@
8187
8295
  function isNull(obj) {
8188
8296
  return obj === null;
8189
8297
  }
8190
- /** version: 2.31.6 */
8298
+ /** version: 2.31.8 */
8191
8299
 
8192
8300
  /*
8193
8301
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8246,17 +8354,17 @@
8246
8354
  exports.createFragment = function (html) {
8247
8355
  var wrapperTags = topLevelWrappingMap[getTagName(html)];
8248
8356
  if (!isUndefined(wrapperTags)) {
8249
- var _iterator8 = _createForOfIteratorHelper(wrapperTags),
8250
- _step8;
8357
+ var _iterator13 = _createForOfIteratorHelper(wrapperTags),
8358
+ _step13;
8251
8359
  try {
8252
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
8253
- var wrapperTag = _step8.value;
8360
+ for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
8361
+ var wrapperTag = _step13.value;
8254
8362
  html = "<".concat(wrapperTag, ">").concat(html, "</").concat(wrapperTag, ">");
8255
8363
  }
8256
8364
  } catch (err) {
8257
- _iterator8.e(err);
8365
+ _iterator13.e(err);
8258
8366
  } finally {
8259
- _iterator8.f();
8367
+ _iterator13.f();
8260
8368
  }
8261
8369
  }
8262
8370
  // For IE11, the document title must not be undefined, but it can be an empty string
@@ -8265,7 +8373,7 @@
8265
8373
  doc.body.innerHTML = html;
8266
8374
  var content = doc.body;
8267
8375
  if (!isUndefined(wrapperTags)) {
8268
- for (var _i33 = 0; _i33 < wrapperTags.length; _i33++) {
8376
+ for (var _i34 = 0; _i34 < wrapperTags.length; _i34++) {
8269
8377
  content = content.firstChild;
8270
8378
  }
8271
8379
  }
@@ -8458,8 +8566,8 @@
8458
8566
  tagName: element.tagName.toLowerCase(),
8459
8567
  hydrated: true
8460
8568
  });
8461
- for (var _i34 = 0, _Object$entries2 = Object.entries(props); _i34 < _Object$entries2.length; _i34++) {
8462
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i34], 2),
8569
+ for (var _i35 = 0, _Object$entries2 = Object.entries(props); _i35 < _Object$entries2.length; _i35++) {
8570
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i35], 2),
8463
8571
  key = _Object$entries2$_i[0],
8464
8572
  value = _Object$entries2$_i[1];
8465
8573
  element[key] = value;
@@ -8753,7 +8861,7 @@
8753
8861
  });
8754
8862
  freeze(LightningElement);
8755
8863
  seal(LightningElement.prototype);
8756
- /* version: 2.31.6 */
8864
+ /* version: 2.31.8 */
8757
8865
 
8758
8866
  exports.LightningElement = LightningElement;
8759
8867
  exports.__unstable__ProfilerControl = profilerControl;