lwc 2.26.2 → 2.28.0

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 (37) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +137 -31
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +137 -31
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +119 -27
  5. package/dist/engine-dom/iife/es5/engine-dom.js +179 -44
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +158 -40
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +137 -31
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +119 -27
  11. package/dist/engine-dom/umd/es5/engine-dom.js +179 -44
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +158 -40
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +99 -25
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +99 -25
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +4 -4
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +4 -4
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -2
  20. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +4 -4
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +3 -3
  22. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +3 -3
  23. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +4 -4
  24. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  25. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +4 -4
  26. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +3 -3
  27. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +3 -3
  28. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  29. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  30. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  31. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  32. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  33. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  34. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  35. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  36. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  37. package/package.json +8 -8
@@ -120,6 +120,7 @@ var LWC = (function (exports) {
120
120
  setPrototypeOf = Object.setPrototypeOf;
121
121
  var isArray$1 = Array.isArray;
122
122
  var _Array$prototype = Array.prototype,
123
+ ArrayConcat$1 = _Array$prototype.concat,
123
124
  ArrayCopyWithin = _Array$prototype.copyWithin,
124
125
  ArrayFill = _Array$prototype.fill,
125
126
  ArrayFilter = _Array$prototype.filter,
@@ -131,6 +132,7 @@ var LWC = (function (exports) {
131
132
  ArrayReverse = _Array$prototype.reverse,
132
133
  ArrayShift = _Array$prototype.shift,
133
134
  ArraySlice = _Array$prototype.slice,
135
+ ArraySome = _Array$prototype.some,
134
136
  ArraySort = _Array$prototype.sort,
135
137
  ArraySplice = _Array$prototype.splice,
136
138
  ArrayUnshift = _Array$prototype.unshift,
@@ -366,9 +368,9 @@ var LWC = (function (exports) {
366
368
  // Increment whenever the LWC template compiler changes
367
369
 
368
370
 
369
- var LWC_VERSION = "2.26.2";
371
+ var LWC_VERSION = "2.28.0";
370
372
  var LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
371
- /** version: 2.26.2 */
373
+ /** version: 2.28.0 */
372
374
 
373
375
  /**
374
376
  * Copyright (C) 2018 salesforce.com, inc.
@@ -462,7 +464,7 @@ var LWC = (function (exports) {
462
464
  patch$1(propName);
463
465
  }
464
466
  }
465
- /** version: 2.26.2 */
467
+ /** version: 2.28.0 */
466
468
 
467
469
  /**
468
470
  * Copyright (C) 2018 salesforce.com, inc.
@@ -556,7 +558,7 @@ var LWC = (function (exports) {
556
558
  setFeatureFlag(name, value);
557
559
  }
558
560
  }
559
- /** version: 2.26.2 */
561
+ /** version: 2.28.0 */
560
562
 
561
563
  /*
562
564
  * Copyright (c) 2018, salesforce.com, inc.
@@ -4514,6 +4516,12 @@ var LWC = (function (exports) {
4514
4516
  /* VNodeType.CustomElement */
4515
4517
  ;
4516
4518
  }
4519
+
4520
+ function isVScopedSlotFragment(vnode) {
4521
+ return vnode.type === 6
4522
+ /* VNodeType.ScopedSlotFragment */
4523
+ ;
4524
+ }
4517
4525
  /*
4518
4526
  * Copyright (c) 2018, salesforce.com, inc.
4519
4527
  * All rights reserved.
@@ -5367,13 +5375,26 @@ var LWC = (function (exports) {
5367
5375
  var renderMode = vm.renderMode,
5368
5376
  shadowMode = vm.shadowMode;
5369
5377
 
5378
+ if (process.env.NODE_ENV !== 'production') {
5379
+ // If any of the children being allocated is a scoped slot fragment, make sure the receiving
5380
+ // component is a light DOM component. This is mainly to validate light dom parent running
5381
+ // in native shadow mode.
5382
+ if (renderMode !== 0
5383
+ /* RenderMode.Light */
5384
+ && ArraySome.call(children, function (child) {
5385
+ return !isNull(child) && isVScopedSlotFragment(child);
5386
+ })) {
5387
+ logError("Invalid usage of 'lwc:slot-data' on ".concat(getComponentTag(vm), " tag. Scoped slot content can only be passed to a light dom child."));
5388
+ }
5389
+ }
5390
+
5370
5391
  if (shadowMode === 1
5371
5392
  /* ShadowMode.Synthetic */
5372
5393
  || renderMode === 0
5373
5394
  /* RenderMode.Light */
5374
5395
  ) {
5375
5396
  // slow path
5376
- allocateInSlot(vm, children); // save the allocated children in case this vnode is reused.
5397
+ allocateInSlot(vm, children, vnode.owner); // save the allocated children in case this vnode is reused.
5377
5398
 
5378
5399
  vnode.aChildren = children; // every child vnode is now allocated, and the host should receive none directly, it receives them via the shadow!
5379
5400
 
@@ -5407,11 +5428,15 @@ var LWC = (function (exports) {
5407
5428
  return vm;
5408
5429
  }
5409
5430
 
5410
- function allocateInSlot(vm, children) {
5411
- var _a;
5431
+ function allocateInSlot(vm, children, owner) {
5432
+ var _a, _b;
5412
5433
 
5413
- var oldSlots = vm.cmpSlots;
5414
- var cmpSlots = vm.cmpSlots = create(null);
5434
+ var oldSlotsMapping = vm.cmpSlots.slotAssignments;
5435
+ var cmpSlotsMapping = create(null);
5436
+ vm.cmpSlots = {
5437
+ owner: owner,
5438
+ slotAssignments: cmpSlotsMapping
5439
+ };
5415
5440
 
5416
5441
  for (var _i15 = 0, len = children.length; _i15 < len; _i15 += 1) {
5417
5442
  var vnode = children[_i15];
@@ -5423,19 +5448,21 @@ var LWC = (function (exports) {
5423
5448
  var slotName = '';
5424
5449
 
5425
5450
  if (isVBaseElement(vnode)) {
5426
- slotName = ((_a = vnode.data.attrs) === null || _a === void 0 ? void 0 : _a.slot) || '';
5451
+ slotName = (_b = (_a = vnode.data.attrs) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : '';
5452
+ } else if (isVScopedSlotFragment(vnode)) {
5453
+ slotName = vnode.slotName;
5427
5454
  }
5428
5455
 
5429
- var vnodes = cmpSlots[slotName] = cmpSlots[slotName] || [];
5456
+ var vnodes = cmpSlotsMapping[slotName] = cmpSlotsMapping[slotName] || [];
5430
5457
  ArrayPush$1.call(vnodes, vnode);
5431
5458
  }
5432
5459
 
5433
5460
  if (isFalse(vm.isDirty)) {
5434
5461
  // We need to determine if the old allocation is really different from the new one
5435
5462
  // and mark the vm as dirty
5436
- var oldKeys = keys(oldSlots);
5463
+ var oldKeys = keys(oldSlotsMapping);
5437
5464
 
5438
- if (oldKeys.length !== keys(cmpSlots).length) {
5465
+ if (oldKeys.length !== keys(cmpSlotsMapping).length) {
5439
5466
  markComponentAsDirty(vm);
5440
5467
  return;
5441
5468
  }
@@ -5443,15 +5470,15 @@ var LWC = (function (exports) {
5443
5470
  for (var _i16 = 0, _len4 = oldKeys.length; _i16 < _len4; _i16 += 1) {
5444
5471
  var key = oldKeys[_i16];
5445
5472
 
5446
- if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
5473
+ if (isUndefined$1(cmpSlotsMapping[key]) || oldSlotsMapping[key].length !== cmpSlotsMapping[key].length) {
5447
5474
  markComponentAsDirty(vm);
5448
5475
  return;
5449
5476
  }
5450
5477
 
5451
- var oldVNodes = oldSlots[key];
5452
- var _vnodes = cmpSlots[key];
5478
+ var oldVNodes = oldSlotsMapping[key];
5479
+ var _vnodes = cmpSlotsMapping[key];
5453
5480
 
5454
- for (var j = 0, a = cmpSlots[key].length; j < a; j += 1) {
5481
+ for (var j = 0, a = cmpSlotsMapping[key].length; j < a; j += 1) {
5455
5482
  if (oldVNodes[j] !== _vnodes[j]) {
5456
5483
  markComponentAsDirty(vm);
5457
5484
  return;
@@ -5650,6 +5677,21 @@ var LWC = (function (exports) {
5650
5677
 
5651
5678
  function addVNodeToChildLWC(vnode) {
5652
5679
  ArrayPush$1.call(getVMBeingRendered().velements, vnode);
5680
+ } // [s]coped [s]lot [f]actory
5681
+
5682
+
5683
+ function ssf(slotName, factory) {
5684
+ return {
5685
+ type: 6
5686
+ /* VNodeType.ScopedSlotFragment */
5687
+ ,
5688
+ factory: factory,
5689
+ owner: getVMBeingRendered(),
5690
+ elm: undefined,
5691
+ sel: undefined,
5692
+ key: undefined,
5693
+ slotName: slotName
5694
+ };
5653
5695
  } // [st]atic node
5654
5696
 
5655
5697
 
@@ -5753,8 +5795,47 @@ var LWC = (function (exports) {
5753
5795
  assert.isTrue(isArray$1(children), "h() 3rd argument children must be an array.");
5754
5796
  }
5755
5797
 
5756
- if (!isUndefined$1(slotset) && !isUndefined$1(slotset[slotName]) && slotset[slotName].length !== 0) {
5757
- children = slotset[slotName];
5798
+ if (!isUndefined$1(slotset) && !isUndefined$1(slotset.slotAssignments) && !isUndefined$1(slotset.slotAssignments[slotName]) && slotset.slotAssignments[slotName].length !== 0) {
5799
+ children = slotset.slotAssignments[slotName].reduce(function (accumulator, vnode) {
5800
+ if (vnode) {
5801
+ var assignedNodeIsScopedSlot = isVScopedSlotFragment(vnode); // The only sniff test for a scoped <slot> element is the presence of `slotData`
5802
+
5803
+ var isScopedSlotElement = !isUndefined$1(data.slotData); // Check if slot types of parent and child are matching
5804
+
5805
+ if (assignedNodeIsScopedSlot !== isScopedSlotElement) {
5806
+ if (process.env.NODE_ENV !== 'production') {
5807
+ logError("Mismatched slot types for ".concat(slotName === '' ? '(default)' : slotName, " slot. Both parent and child component must use standard type or scoped type for a given slot."), slotset.owner);
5808
+ } // Ignore slot content from parent
5809
+
5810
+
5811
+ return accumulator;
5812
+ } // If the passed slot content is factory, evaluate it and add the produced vnodes
5813
+
5814
+
5815
+ if (assignedNodeIsScopedSlot) {
5816
+ var vmBeingRenderedInception = getVMBeingRendered();
5817
+ var scopedSlotChildren = []; // Evaluate in the scope of the slot content's owner
5818
+ // if a slotset is provided, there will always be an owner. The only case where owner is
5819
+ // undefined is for root components, but root components cannot accept slotted content
5820
+
5821
+ setVMBeingRendered(slotset.owner);
5822
+
5823
+ try {
5824
+ scopedSlotChildren = vnode.factory(data.slotData);
5825
+ } finally {
5826
+ setVMBeingRendered(vmBeingRenderedInception);
5827
+ }
5828
+
5829
+ return ArrayConcat$1.call(accumulator, scopedSlotChildren);
5830
+ } else {
5831
+ // If the slot content is standard type, the content is static, no additional
5832
+ // processing needed on the vnode
5833
+ return ArrayConcat$1.call(accumulator, vnode);
5834
+ }
5835
+ }
5836
+
5837
+ return accumulator;
5838
+ }, []);
5758
5839
  }
5759
5840
 
5760
5841
  var vmBeingRendered = getVMBeingRendered();
@@ -6161,7 +6242,8 @@ var LWC = (function (exports) {
6161
6242
  st: st,
6162
6243
  gid: gid,
6163
6244
  fid: fid,
6164
- shc: shc
6245
+ shc: shc,
6246
+ ssf: ssf
6165
6247
  });
6166
6248
  /*
6167
6249
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6310,9 +6392,9 @@ var LWC = (function (exports) {
6310
6392
  var _html$slots = html.slots,
6311
6393
  slots = _html$slots === void 0 ? EmptyArray : _html$slots;
6312
6394
 
6313
- for (var slotName in cmpSlots) {
6395
+ for (var slotName in cmpSlots.slotAssignments) {
6314
6396
  // eslint-disable-next-line @lwc/lwc-internal/no-production-assert
6315
- assert.isTrue(isArray$1(cmpSlots[slotName]), "Slots can only be set to an array, instead received ".concat(toString$1(cmpSlots[slotName]), " for slot \"").concat(slotName, "\" in ").concat(vm, "."));
6397
+ assert.isTrue(isArray$1(cmpSlots.slotAssignments[slotName]), "Slots can only be set to an array, instead received ".concat(toString$1(cmpSlots.slotAssignments[slotName]), " for slot \"").concat(slotName, "\" in ").concat(vm, "."));
6316
6398
 
6317
6399
  if (slotName !== '' && ArrayIndexOf.call(slots, slotName) === -1) {
6318
6400
  // TODO [#1297]: this should never really happen because the compiler should always validate
@@ -6909,7 +6991,9 @@ var LWC = (function (exports) {
6909
6991
  velements: EmptyArray,
6910
6992
  cmpProps: create(null),
6911
6993
  cmpFields: create(null),
6912
- cmpSlots: create(null),
6994
+ cmpSlots: {
6995
+ slotAssignments: create(null)
6996
+ },
6913
6997
  oar: create(null),
6914
6998
  cmpTemplate: null,
6915
6999
  hydrated: Boolean(hydrated),
@@ -8489,7 +8573,7 @@ var LWC = (function (exports) {
8489
8573
 
8490
8574
  return ctor;
8491
8575
  }
8492
- /* version: 2.26.2 */
8576
+ /* version: 2.28.0 */
8493
8577
 
8494
8578
  /*
8495
8579
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8824,10 +8908,12 @@ var LWC = (function (exports) {
8824
8908
  var pendingRegistryForElement = new WeakMap();
8825
8909
  var definitionForConstructor = new WeakMap();
8826
8910
  var registeredUserCtors = new WeakSet();
8911
+ var registeredPivotCtors = new WeakSet();
8827
8912
  var pivotCtorByTag = new Map();
8828
8913
  var globalDefinitionsByTag = new Map();
8829
8914
  var globalDefinitionsByClass = new Map();
8830
8915
  var awaitingUpgrade = new Map();
8916
+ var pendingWhenDefinedCallbacks = new Map();
8831
8917
  var EMPTY_SET = new Set();
8832
8918
 
8833
8919
  function createDefinitionRecord(constructor) {
@@ -8969,6 +9055,7 @@ var LWC = (function (exports) {
8969
9055
  }(NativeHTMLElement);
8970
9056
 
8971
9057
  PivotCtor.observedAttributes = _toConsumableArray(registeredDefinition.observedAttributes);
9058
+ registeredPivotCtors.add(PivotCtor);
8972
9059
  return PivotCtor;
8973
9060
  }
8974
9061
 
@@ -9119,6 +9206,43 @@ var LWC = (function (exports) {
9119
9206
  }
9120
9207
 
9121
9208
  return createDefinitionRecord(constructor);
9209
+ } // Defer a `whenDefined()` callback until an externally-visible custom element is defined
9210
+
9211
+
9212
+ function createPendingWhenDefinedCallback(tagName) {
9213
+ return new Promise(function (resolve) {
9214
+ var resolvers = pendingWhenDefinedCallbacks.get(tagName);
9215
+
9216
+ if (isUndefined$1(resolvers)) {
9217
+ resolvers = [];
9218
+ pendingWhenDefinedCallbacks.set(tagName, resolvers);
9219
+ }
9220
+
9221
+ resolvers.push(resolve);
9222
+ });
9223
+ } // Call any pending `whenDefined()` callbacks
9224
+
9225
+
9226
+ function flushPendingWhenDefinedCallbacks(tagName, ctor) {
9227
+ var resolvers = pendingWhenDefinedCallbacks.get(tagName);
9228
+
9229
+ if (!isUndefined$1(resolvers)) {
9230
+ var _iterator6 = _createForOfIteratorHelper(resolvers),
9231
+ _step6;
9232
+
9233
+ try {
9234
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
9235
+ var resolver = _step6.value;
9236
+ resolver(ctor);
9237
+ }
9238
+ } catch (err) {
9239
+ _iterator6.e(err);
9240
+ } finally {
9241
+ _iterator6.f();
9242
+ }
9243
+ }
9244
+
9245
+ pendingWhenDefinedCallbacks.delete(tagName);
9122
9246
  }
9123
9247
 
9124
9248
  var _window2 = window,
@@ -9173,12 +9297,12 @@ var LWC = (function (exports) {
9173
9297
  if (!isUndefined$1(awaiting)) {
9174
9298
  awaitingUpgrade.delete(tagName);
9175
9299
 
9176
- var _iterator6 = _createForOfIteratorHelper(awaiting),
9177
- _step6;
9300
+ var _iterator7 = _createForOfIteratorHelper(awaiting),
9301
+ _step7;
9178
9302
 
9179
9303
  try {
9180
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
9181
- var element = _step6.value;
9304
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
9305
+ var element = _step7.value;
9182
9306
  var registeredDefinition = pendingRegistryForElement.get(element); // At this point, registeredDefinition should never be undefined because awaitingUpgrade
9183
9307
  // is only populated when we haven't run internalUpgrade yet, and we only populate
9184
9308
  // pendingRegistryForElement when internalUpgrade hasn't run yet.
@@ -9190,11 +9314,14 @@ var LWC = (function (exports) {
9190
9314
  }
9191
9315
  }
9192
9316
  } catch (err) {
9193
- _iterator6.e(err);
9317
+ _iterator7.e(err);
9194
9318
  } finally {
9195
- _iterator6.f();
9319
+ _iterator7.f();
9196
9320
  }
9197
- }
9321
+ } // If anyone called customElements.whenDefined() and is still waiting for a promise resolution, resolve now
9322
+
9323
+
9324
+ flushPendingWhenDefinedCallbacks(tagName, constructor);
9198
9325
  };
9199
9326
 
9200
9327
  CustomElementRegistry.prototype.get = function get(tagName) {
@@ -9205,10 +9332,13 @@ var LWC = (function (exports) {
9205
9332
 
9206
9333
  if (!isUndefined$1(definition)) {
9207
9334
  return definition.UserCtor; // defined by the patched custom elements registry
9208
- } // TODO [#3073]: return undefined rather than the pivot constructor (NativeCtor)
9335
+ }
9209
9336
 
9337
+ if (registeredPivotCtors.has(NativeCtor)) {
9338
+ return undefined; // pivot constructors should not be observable, return undefined
9339
+ }
9210
9340
 
9211
- return NativeCtor; // return the pivot constructor or constructor that existed before patching
9341
+ return NativeCtor; // constructor that existed before patching
9212
9342
  }
9213
9343
  };
9214
9344
 
@@ -9218,15 +9348,20 @@ var LWC = (function (exports) {
9218
9348
 
9219
9349
  if (!isUndefined$1(definition)) {
9220
9350
  return definition.UserCtor;
9221
- } // TODO [#3073]: return undefined rather than the pivot constructor (NativeCtor)
9222
- // In this case, the custom element must have been defined before the registry patches
9351
+ } // In this case, the custom element must have been defined before the registry patches
9223
9352
  // were applied. So return the non-pivot constructor
9224
9353
 
9225
9354
 
9226
9355
  if (isUndefined$1(NativeCtor)) {
9227
9356
  // Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1335247
9228
9357
  // We can patch the correct behavior using customElements.get()
9229
- return nativeGet.call(nativeRegistry, tagName);
9358
+ NativeCtor = nativeGet.call(nativeRegistry, tagName);
9359
+ }
9360
+
9361
+ if (registeredPivotCtors.has(NativeCtor)) {
9362
+ // Pivot constructors should not be observable. Wait to resolve the promise
9363
+ // if a constructor is ever defined in userland
9364
+ return createPendingWhenDefinedCallback(tagName);
9230
9365
  }
9231
9366
 
9232
9367
  return NativeCtor;
@@ -9490,7 +9625,7 @@ var LWC = (function (exports) {
9490
9625
  function isNull(obj) {
9491
9626
  return obj === null;
9492
9627
  }
9493
- /** version: 2.26.2 */
9628
+ /** version: 2.28.0 */
9494
9629
 
9495
9630
  /*
9496
9631
  * Copyright (c) 2018, salesforce.com, inc.
@@ -9558,18 +9693,18 @@ var LWC = (function (exports) {
9558
9693
  var wrapperTags = topLevelWrappingMap[getTagName(html)];
9559
9694
 
9560
9695
  if (!isUndefined(wrapperTags)) {
9561
- var _iterator7 = _createForOfIteratorHelper(wrapperTags),
9562
- _step7;
9696
+ var _iterator8 = _createForOfIteratorHelper(wrapperTags),
9697
+ _step8;
9563
9698
 
9564
9699
  try {
9565
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
9566
- var wrapperTag = _step7.value;
9700
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
9701
+ var wrapperTag = _step8.value;
9567
9702
  html = "<".concat(wrapperTag, ">").concat(html, "</").concat(wrapperTag, ">");
9568
9703
  }
9569
9704
  } catch (err) {
9570
- _iterator7.e(err);
9705
+ _iterator8.e(err);
9571
9706
  } finally {
9572
- _iterator7.f();
9707
+ _iterator8.f();
9573
9708
  }
9574
9709
  } // For IE11, the document title must not be undefined, but it can be an empty string
9575
9710
  // https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createHTMLDocument#browser_compatibility
@@ -10157,7 +10292,7 @@ var LWC = (function (exports) {
10157
10292
  });
10158
10293
  freeze(LightningElement);
10159
10294
  seal(LightningElement.prototype);
10160
- /* version: 2.26.2 */
10295
+ /* version: 2.28.0 */
10161
10296
 
10162
10297
  exports.LightningElement = LightningElement;
10163
10298
  exports.__unstable__ProfilerControl = profilerControl;