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
@@ -123,6 +123,7 @@
123
123
  setPrototypeOf = Object.setPrototypeOf;
124
124
  var isArray$1 = Array.isArray;
125
125
  var _Array$prototype = Array.prototype,
126
+ ArrayConcat$1 = _Array$prototype.concat,
126
127
  ArrayCopyWithin = _Array$prototype.copyWithin,
127
128
  ArrayFill = _Array$prototype.fill,
128
129
  ArrayFilter = _Array$prototype.filter,
@@ -134,6 +135,7 @@
134
135
  ArrayReverse = _Array$prototype.reverse,
135
136
  ArrayShift = _Array$prototype.shift,
136
137
  ArraySlice = _Array$prototype.slice,
138
+ ArraySome = _Array$prototype.some,
137
139
  ArraySort = _Array$prototype.sort,
138
140
  ArraySplice = _Array$prototype.splice,
139
141
  ArrayUnshift = _Array$prototype.unshift,
@@ -369,9 +371,9 @@
369
371
  // Increment whenever the LWC template compiler changes
370
372
 
371
373
 
372
- var LWC_VERSION = "2.26.2";
374
+ var LWC_VERSION = "2.28.0";
373
375
  var LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
374
- /** version: 2.26.2 */
376
+ /** version: 2.28.0 */
375
377
 
376
378
  /**
377
379
  * Copyright (C) 2018 salesforce.com, inc.
@@ -465,7 +467,7 @@
465
467
  patch$1(propName);
466
468
  }
467
469
  }
468
- /** version: 2.26.2 */
470
+ /** version: 2.28.0 */
469
471
 
470
472
  /**
471
473
  * Copyright (C) 2018 salesforce.com, inc.
@@ -559,7 +561,7 @@
559
561
  setFeatureFlag(name, value);
560
562
  }
561
563
  }
562
- /** version: 2.26.2 */
564
+ /** version: 2.28.0 */
563
565
 
564
566
  /*
565
567
  * Copyright (c) 2018, salesforce.com, inc.
@@ -4517,6 +4519,12 @@
4517
4519
  /* VNodeType.CustomElement */
4518
4520
  ;
4519
4521
  }
4522
+
4523
+ function isVScopedSlotFragment(vnode) {
4524
+ return vnode.type === 6
4525
+ /* VNodeType.ScopedSlotFragment */
4526
+ ;
4527
+ }
4520
4528
  /*
4521
4529
  * Copyright (c) 2018, salesforce.com, inc.
4522
4530
  * All rights reserved.
@@ -5370,13 +5378,26 @@
5370
5378
  var renderMode = vm.renderMode,
5371
5379
  shadowMode = vm.shadowMode;
5372
5380
 
5381
+ if (process.env.NODE_ENV !== 'production') {
5382
+ // If any of the children being allocated is a scoped slot fragment, make sure the receiving
5383
+ // component is a light DOM component. This is mainly to validate light dom parent running
5384
+ // in native shadow mode.
5385
+ if (renderMode !== 0
5386
+ /* RenderMode.Light */
5387
+ && ArraySome.call(children, function (child) {
5388
+ return !isNull(child) && isVScopedSlotFragment(child);
5389
+ })) {
5390
+ logError("Invalid usage of 'lwc:slot-data' on ".concat(getComponentTag(vm), " tag. Scoped slot content can only be passed to a light dom child."));
5391
+ }
5392
+ }
5393
+
5373
5394
  if (shadowMode === 1
5374
5395
  /* ShadowMode.Synthetic */
5375
5396
  || renderMode === 0
5376
5397
  /* RenderMode.Light */
5377
5398
  ) {
5378
5399
  // slow path
5379
- allocateInSlot(vm, children); // save the allocated children in case this vnode is reused.
5400
+ allocateInSlot(vm, children, vnode.owner); // save the allocated children in case this vnode is reused.
5380
5401
 
5381
5402
  vnode.aChildren = children; // every child vnode is now allocated, and the host should receive none directly, it receives them via the shadow!
5382
5403
 
@@ -5410,11 +5431,15 @@
5410
5431
  return vm;
5411
5432
  }
5412
5433
 
5413
- function allocateInSlot(vm, children) {
5414
- var _a;
5434
+ function allocateInSlot(vm, children, owner) {
5435
+ var _a, _b;
5415
5436
 
5416
- var oldSlots = vm.cmpSlots;
5417
- var cmpSlots = vm.cmpSlots = create(null);
5437
+ var oldSlotsMapping = vm.cmpSlots.slotAssignments;
5438
+ var cmpSlotsMapping = create(null);
5439
+ vm.cmpSlots = {
5440
+ owner: owner,
5441
+ slotAssignments: cmpSlotsMapping
5442
+ };
5418
5443
 
5419
5444
  for (var _i15 = 0, len = children.length; _i15 < len; _i15 += 1) {
5420
5445
  var vnode = children[_i15];
@@ -5426,19 +5451,21 @@
5426
5451
  var slotName = '';
5427
5452
 
5428
5453
  if (isVBaseElement(vnode)) {
5429
- slotName = ((_a = vnode.data.attrs) === null || _a === void 0 ? void 0 : _a.slot) || '';
5454
+ slotName = (_b = (_a = vnode.data.attrs) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : '';
5455
+ } else if (isVScopedSlotFragment(vnode)) {
5456
+ slotName = vnode.slotName;
5430
5457
  }
5431
5458
 
5432
- var vnodes = cmpSlots[slotName] = cmpSlots[slotName] || [];
5459
+ var vnodes = cmpSlotsMapping[slotName] = cmpSlotsMapping[slotName] || [];
5433
5460
  ArrayPush$1.call(vnodes, vnode);
5434
5461
  }
5435
5462
 
5436
5463
  if (isFalse(vm.isDirty)) {
5437
5464
  // We need to determine if the old allocation is really different from the new one
5438
5465
  // and mark the vm as dirty
5439
- var oldKeys = keys(oldSlots);
5466
+ var oldKeys = keys(oldSlotsMapping);
5440
5467
 
5441
- if (oldKeys.length !== keys(cmpSlots).length) {
5468
+ if (oldKeys.length !== keys(cmpSlotsMapping).length) {
5442
5469
  markComponentAsDirty(vm);
5443
5470
  return;
5444
5471
  }
@@ -5446,15 +5473,15 @@
5446
5473
  for (var _i16 = 0, _len4 = oldKeys.length; _i16 < _len4; _i16 += 1) {
5447
5474
  var key = oldKeys[_i16];
5448
5475
 
5449
- if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
5476
+ if (isUndefined$1(cmpSlotsMapping[key]) || oldSlotsMapping[key].length !== cmpSlotsMapping[key].length) {
5450
5477
  markComponentAsDirty(vm);
5451
5478
  return;
5452
5479
  }
5453
5480
 
5454
- var oldVNodes = oldSlots[key];
5455
- var _vnodes = cmpSlots[key];
5481
+ var oldVNodes = oldSlotsMapping[key];
5482
+ var _vnodes = cmpSlotsMapping[key];
5456
5483
 
5457
- for (var j = 0, a = cmpSlots[key].length; j < a; j += 1) {
5484
+ for (var j = 0, a = cmpSlotsMapping[key].length; j < a; j += 1) {
5458
5485
  if (oldVNodes[j] !== _vnodes[j]) {
5459
5486
  markComponentAsDirty(vm);
5460
5487
  return;
@@ -5653,6 +5680,21 @@
5653
5680
 
5654
5681
  function addVNodeToChildLWC(vnode) {
5655
5682
  ArrayPush$1.call(getVMBeingRendered().velements, vnode);
5683
+ } // [s]coped [s]lot [f]actory
5684
+
5685
+
5686
+ function ssf(slotName, factory) {
5687
+ return {
5688
+ type: 6
5689
+ /* VNodeType.ScopedSlotFragment */
5690
+ ,
5691
+ factory: factory,
5692
+ owner: getVMBeingRendered(),
5693
+ elm: undefined,
5694
+ sel: undefined,
5695
+ key: undefined,
5696
+ slotName: slotName
5697
+ };
5656
5698
  } // [st]atic node
5657
5699
 
5658
5700
 
@@ -5756,8 +5798,47 @@
5756
5798
  assert.isTrue(isArray$1(children), "h() 3rd argument children must be an array.");
5757
5799
  }
5758
5800
 
5759
- if (!isUndefined$1(slotset) && !isUndefined$1(slotset[slotName]) && slotset[slotName].length !== 0) {
5760
- children = slotset[slotName];
5801
+ if (!isUndefined$1(slotset) && !isUndefined$1(slotset.slotAssignments) && !isUndefined$1(slotset.slotAssignments[slotName]) && slotset.slotAssignments[slotName].length !== 0) {
5802
+ children = slotset.slotAssignments[slotName].reduce(function (accumulator, vnode) {
5803
+ if (vnode) {
5804
+ var assignedNodeIsScopedSlot = isVScopedSlotFragment(vnode); // The only sniff test for a scoped <slot> element is the presence of `slotData`
5805
+
5806
+ var isScopedSlotElement = !isUndefined$1(data.slotData); // Check if slot types of parent and child are matching
5807
+
5808
+ if (assignedNodeIsScopedSlot !== isScopedSlotElement) {
5809
+ if (process.env.NODE_ENV !== 'production') {
5810
+ 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);
5811
+ } // Ignore slot content from parent
5812
+
5813
+
5814
+ return accumulator;
5815
+ } // If the passed slot content is factory, evaluate it and add the produced vnodes
5816
+
5817
+
5818
+ if (assignedNodeIsScopedSlot) {
5819
+ var vmBeingRenderedInception = getVMBeingRendered();
5820
+ var scopedSlotChildren = []; // Evaluate in the scope of the slot content's owner
5821
+ // if a slotset is provided, there will always be an owner. The only case where owner is
5822
+ // undefined is for root components, but root components cannot accept slotted content
5823
+
5824
+ setVMBeingRendered(slotset.owner);
5825
+
5826
+ try {
5827
+ scopedSlotChildren = vnode.factory(data.slotData);
5828
+ } finally {
5829
+ setVMBeingRendered(vmBeingRenderedInception);
5830
+ }
5831
+
5832
+ return ArrayConcat$1.call(accumulator, scopedSlotChildren);
5833
+ } else {
5834
+ // If the slot content is standard type, the content is static, no additional
5835
+ // processing needed on the vnode
5836
+ return ArrayConcat$1.call(accumulator, vnode);
5837
+ }
5838
+ }
5839
+
5840
+ return accumulator;
5841
+ }, []);
5761
5842
  }
5762
5843
 
5763
5844
  var vmBeingRendered = getVMBeingRendered();
@@ -6164,7 +6245,8 @@
6164
6245
  st: st,
6165
6246
  gid: gid,
6166
6247
  fid: fid,
6167
- shc: shc
6248
+ shc: shc,
6249
+ ssf: ssf
6168
6250
  });
6169
6251
  /*
6170
6252
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6313,9 +6395,9 @@
6313
6395
  var _html$slots = html.slots,
6314
6396
  slots = _html$slots === void 0 ? EmptyArray : _html$slots;
6315
6397
 
6316
- for (var slotName in cmpSlots) {
6398
+ for (var slotName in cmpSlots.slotAssignments) {
6317
6399
  // eslint-disable-next-line @lwc/lwc-internal/no-production-assert
6318
- 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, "."));
6400
+ 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, "."));
6319
6401
 
6320
6402
  if (slotName !== '' && ArrayIndexOf.call(slots, slotName) === -1) {
6321
6403
  // TODO [#1297]: this should never really happen because the compiler should always validate
@@ -6912,7 +6994,9 @@
6912
6994
  velements: EmptyArray,
6913
6995
  cmpProps: create(null),
6914
6996
  cmpFields: create(null),
6915
- cmpSlots: create(null),
6997
+ cmpSlots: {
6998
+ slotAssignments: create(null)
6999
+ },
6916
7000
  oar: create(null),
6917
7001
  cmpTemplate: null,
6918
7002
  hydrated: Boolean(hydrated),
@@ -8492,7 +8576,7 @@
8492
8576
 
8493
8577
  return ctor;
8494
8578
  }
8495
- /* version: 2.26.2 */
8579
+ /* version: 2.28.0 */
8496
8580
 
8497
8581
  /*
8498
8582
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8827,10 +8911,12 @@
8827
8911
  var pendingRegistryForElement = new WeakMap();
8828
8912
  var definitionForConstructor = new WeakMap();
8829
8913
  var registeredUserCtors = new WeakSet();
8914
+ var registeredPivotCtors = new WeakSet();
8830
8915
  var pivotCtorByTag = new Map();
8831
8916
  var globalDefinitionsByTag = new Map();
8832
8917
  var globalDefinitionsByClass = new Map();
8833
8918
  var awaitingUpgrade = new Map();
8919
+ var pendingWhenDefinedCallbacks = new Map();
8834
8920
  var EMPTY_SET = new Set();
8835
8921
 
8836
8922
  function createDefinitionRecord(constructor) {
@@ -8972,6 +9058,7 @@
8972
9058
  }(NativeHTMLElement);
8973
9059
 
8974
9060
  PivotCtor.observedAttributes = _toConsumableArray(registeredDefinition.observedAttributes);
9061
+ registeredPivotCtors.add(PivotCtor);
8975
9062
  return PivotCtor;
8976
9063
  }
8977
9064
 
@@ -9122,6 +9209,43 @@
9122
9209
  }
9123
9210
 
9124
9211
  return createDefinitionRecord(constructor);
9212
+ } // Defer a `whenDefined()` callback until an externally-visible custom element is defined
9213
+
9214
+
9215
+ function createPendingWhenDefinedCallback(tagName) {
9216
+ return new Promise(function (resolve) {
9217
+ var resolvers = pendingWhenDefinedCallbacks.get(tagName);
9218
+
9219
+ if (isUndefined$1(resolvers)) {
9220
+ resolvers = [];
9221
+ pendingWhenDefinedCallbacks.set(tagName, resolvers);
9222
+ }
9223
+
9224
+ resolvers.push(resolve);
9225
+ });
9226
+ } // Call any pending `whenDefined()` callbacks
9227
+
9228
+
9229
+ function flushPendingWhenDefinedCallbacks(tagName, ctor) {
9230
+ var resolvers = pendingWhenDefinedCallbacks.get(tagName);
9231
+
9232
+ if (!isUndefined$1(resolvers)) {
9233
+ var _iterator6 = _createForOfIteratorHelper(resolvers),
9234
+ _step6;
9235
+
9236
+ try {
9237
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
9238
+ var resolver = _step6.value;
9239
+ resolver(ctor);
9240
+ }
9241
+ } catch (err) {
9242
+ _iterator6.e(err);
9243
+ } finally {
9244
+ _iterator6.f();
9245
+ }
9246
+ }
9247
+
9248
+ pendingWhenDefinedCallbacks.delete(tagName);
9125
9249
  }
9126
9250
 
9127
9251
  var _window2 = window,
@@ -9176,12 +9300,12 @@
9176
9300
  if (!isUndefined$1(awaiting)) {
9177
9301
  awaitingUpgrade.delete(tagName);
9178
9302
 
9179
- var _iterator6 = _createForOfIteratorHelper(awaiting),
9180
- _step6;
9303
+ var _iterator7 = _createForOfIteratorHelper(awaiting),
9304
+ _step7;
9181
9305
 
9182
9306
  try {
9183
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
9184
- var element = _step6.value;
9307
+ for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
9308
+ var element = _step7.value;
9185
9309
  var registeredDefinition = pendingRegistryForElement.get(element); // At this point, registeredDefinition should never be undefined because awaitingUpgrade
9186
9310
  // is only populated when we haven't run internalUpgrade yet, and we only populate
9187
9311
  // pendingRegistryForElement when internalUpgrade hasn't run yet.
@@ -9193,11 +9317,14 @@
9193
9317
  }
9194
9318
  }
9195
9319
  } catch (err) {
9196
- _iterator6.e(err);
9320
+ _iterator7.e(err);
9197
9321
  } finally {
9198
- _iterator6.f();
9322
+ _iterator7.f();
9199
9323
  }
9200
- }
9324
+ } // If anyone called customElements.whenDefined() and is still waiting for a promise resolution, resolve now
9325
+
9326
+
9327
+ flushPendingWhenDefinedCallbacks(tagName, constructor);
9201
9328
  };
9202
9329
 
9203
9330
  CustomElementRegistry.prototype.get = function get(tagName) {
@@ -9208,10 +9335,13 @@
9208
9335
 
9209
9336
  if (!isUndefined$1(definition)) {
9210
9337
  return definition.UserCtor; // defined by the patched custom elements registry
9211
- } // TODO [#3073]: return undefined rather than the pivot constructor (NativeCtor)
9338
+ }
9212
9339
 
9340
+ if (registeredPivotCtors.has(NativeCtor)) {
9341
+ return undefined; // pivot constructors should not be observable, return undefined
9342
+ }
9213
9343
 
9214
- return NativeCtor; // return the pivot constructor or constructor that existed before patching
9344
+ return NativeCtor; // constructor that existed before patching
9215
9345
  }
9216
9346
  };
9217
9347
 
@@ -9221,15 +9351,20 @@
9221
9351
 
9222
9352
  if (!isUndefined$1(definition)) {
9223
9353
  return definition.UserCtor;
9224
- } // TODO [#3073]: return undefined rather than the pivot constructor (NativeCtor)
9225
- // In this case, the custom element must have been defined before the registry patches
9354
+ } // In this case, the custom element must have been defined before the registry patches
9226
9355
  // were applied. So return the non-pivot constructor
9227
9356
 
9228
9357
 
9229
9358
  if (isUndefined$1(NativeCtor)) {
9230
9359
  // Chromium bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1335247
9231
9360
  // We can patch the correct behavior using customElements.get()
9232
- return nativeGet.call(nativeRegistry, tagName);
9361
+ NativeCtor = nativeGet.call(nativeRegistry, tagName);
9362
+ }
9363
+
9364
+ if (registeredPivotCtors.has(NativeCtor)) {
9365
+ // Pivot constructors should not be observable. Wait to resolve the promise
9366
+ // if a constructor is ever defined in userland
9367
+ return createPendingWhenDefinedCallback(tagName);
9233
9368
  }
9234
9369
 
9235
9370
  return NativeCtor;
@@ -9493,7 +9628,7 @@
9493
9628
  function isNull(obj) {
9494
9629
  return obj === null;
9495
9630
  }
9496
- /** version: 2.26.2 */
9631
+ /** version: 2.28.0 */
9497
9632
 
9498
9633
  /*
9499
9634
  * Copyright (c) 2018, salesforce.com, inc.
@@ -9561,18 +9696,18 @@
9561
9696
  var wrapperTags = topLevelWrappingMap[getTagName(html)];
9562
9697
 
9563
9698
  if (!isUndefined(wrapperTags)) {
9564
- var _iterator7 = _createForOfIteratorHelper(wrapperTags),
9565
- _step7;
9699
+ var _iterator8 = _createForOfIteratorHelper(wrapperTags),
9700
+ _step8;
9566
9701
 
9567
9702
  try {
9568
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
9569
- var wrapperTag = _step7.value;
9703
+ for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
9704
+ var wrapperTag = _step8.value;
9570
9705
  html = "<".concat(wrapperTag, ">").concat(html, "</").concat(wrapperTag, ">");
9571
9706
  }
9572
9707
  } catch (err) {
9573
- _iterator7.e(err);
9708
+ _iterator8.e(err);
9574
9709
  } finally {
9575
- _iterator7.f();
9710
+ _iterator8.f();
9576
9711
  }
9577
9712
  } // For IE11, the document title must not be undefined, but it can be an empty string
9578
9713
  // https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createHTMLDocument#browser_compatibility
@@ -10160,7 +10295,7 @@
10160
10295
  });
10161
10296
  freeze(LightningElement);
10162
10297
  seal(LightningElement.prototype);
10163
- /* version: 2.26.2 */
10298
+ /* version: 2.28.0 */
10164
10299
 
10165
10300
  exports.LightningElement = LightningElement;
10166
10301
  exports.__unstable__ProfilerControl = profilerControl;