lwc 2.5.1 → 2.5.4

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 (41) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +84 -73
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +85 -74
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +2 -2
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +68 -55
  5. package/dist/engine-dom/iife/es5/engine-dom.js +125 -93
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +2 -2
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +106 -72
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +86 -75
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +2 -2
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +69 -56
  11. package/dist/engine-dom/umd/es5/engine-dom.js +126 -94
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +2 -2
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +107 -73
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +66 -73
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +2 -2
  16. package/dist/engine-server/esm/es2017/engine-server.js +66 -73
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +75 -39
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +76 -40
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -2
  20. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +75 -39
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +76 -40
  22. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -2
  23. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +75 -39
  24. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +77 -41
  25. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  26. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +76 -40
  27. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +77 -41
  28. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -2
  29. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +76 -40
  30. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  31. package/dist/wire-service/iife/es2017/wire-service.js +3 -3
  32. package/dist/wire-service/iife/es2017/wire-service_debug.js +3 -3
  33. package/dist/wire-service/iife/es5/wire-service.js +3 -3
  34. package/dist/wire-service/iife/es5/wire-service.min.js +1 -1
  35. package/dist/wire-service/iife/es5/wire-service_debug.js +3 -3
  36. package/dist/wire-service/umd/es2017/wire-service.js +4 -4
  37. package/dist/wire-service/umd/es2017/wire-service_debug.js +4 -4
  38. package/dist/wire-service/umd/es5/wire-service.js +4 -4
  39. package/dist/wire-service/umd/es5/wire-service.min.js +1 -1
  40. package/dist/wire-service/umd/es5/wire-service_debug.js +4 -4
  41. package/package.json +8 -8
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
3
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.LWC = {}));
5
- }(this, (function (exports) { 'use strict';
5
+ })(this, (function (exports) { 'use strict';
6
6
 
7
7
  function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf2(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
8
8
 
@@ -344,7 +344,7 @@
344
344
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
345
345
  return attributeName;
346
346
  }
347
- /** version: 2.5.1 */
347
+ /** version: 2.5.4 */
348
348
 
349
349
  /*
350
350
  * Copyright (c) 2018, salesforce.com, inc.
@@ -452,6 +452,7 @@
452
452
  ENABLE_HMR: null,
453
453
  ENABLE_INNER_OUTER_TEXT_PATCH: null,
454
454
  ENABLE_ELEMENT_PATCH: null,
455
+ ENABLE_FORCE_NATIVE_SHADOW_MODE_FOR_TEST: null,
455
456
  ENABLE_NODE_LIST_PATCH: null,
456
457
  ENABLE_HTML_COLLECTIONS_PATCH: null,
457
458
  ENABLE_NODE_PATCH: null,
@@ -515,7 +516,7 @@
515
516
 
516
517
  function setFeatureFlagForTest(name, value) {
517
518
  }
518
- /** version: 2.5.1 */
519
+ /** version: 2.5.4 */
519
520
 
520
521
  /* proxy-compat-disable */
521
522
 
@@ -2340,34 +2341,6 @@
2340
2341
 
2341
2342
  return getBoundingClientRect(elm);
2342
2343
  },
2343
- querySelector: function querySelector(selectors) {
2344
- var vm = getAssociatedVM(this);
2345
- var elm = vm.elm,
2346
- querySelector = vm.renderer.querySelector;
2347
-
2348
- return querySelector(elm, selectors);
2349
- },
2350
- querySelectorAll: function querySelectorAll(selectors) {
2351
- var vm = getAssociatedVM(this);
2352
- var elm = vm.elm,
2353
- querySelectorAll = vm.renderer.querySelectorAll;
2354
-
2355
- return querySelectorAll(elm, selectors);
2356
- },
2357
- getElementsByTagName: function getElementsByTagName(tagNameOrWildCard) {
2358
- var vm = getAssociatedVM(this);
2359
- var elm = vm.elm,
2360
- getElementsByTagName = vm.renderer.getElementsByTagName;
2361
-
2362
- return getElementsByTagName(elm, tagNameOrWildCard);
2363
- },
2364
- getElementsByClassName: function getElementsByClassName(names) {
2365
- var vm = getAssociatedVM(this);
2366
- var elm = vm.elm,
2367
- getElementsByClassName = vm.renderer.getElementsByClassName;
2368
-
2369
- return getElementsByClassName(elm, names);
2370
- },
2371
2344
 
2372
2345
  get isConnected() {
2373
2346
  var _getAssociatedVM8 = getAssociatedVM(this),
@@ -2406,6 +2379,49 @@
2406
2379
  return "[object ".concat(vm.def.name, "]");
2407
2380
  }
2408
2381
  };
2382
+ var queryAndChildGetterDescriptors = create(null);
2383
+ var childGetters = [['children', 'getChildren'], ['childNodes', 'getChildNodes'], ['firstChild', 'getFirstChild'], ['firstElementChild', 'getFirstElementChild'], ['lastChild', 'getLastChild'], ['lastElementChild', 'getLastElementChild']]; // Generic passthrough for child getters on HTMLElement to the relevant Renderer APIs
2384
+
2385
+ var _loop = function _loop() {
2386
+ var _childGetters$_i = _slicedToArray(_childGetters[_i9], 2),
2387
+ elementProp = _childGetters$_i[0],
2388
+ rendererMethod = _childGetters$_i[1];
2389
+
2390
+ queryAndChildGetterDescriptors[elementProp] = {
2391
+ get: function get() {
2392
+ var vm = getAssociatedVM(this);
2393
+ var elm = vm.elm,
2394
+ renderer = vm.renderer;
2395
+
2396
+ return renderer[rendererMethod](elm);
2397
+ }
2398
+ };
2399
+ };
2400
+
2401
+ for (var _i9 = 0, _childGetters = childGetters; _i9 < _childGetters.length; _i9++) {
2402
+ _loop();
2403
+ }
2404
+
2405
+ var queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll']; // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
2406
+
2407
+ var _loop2 = function _loop2() {
2408
+ var queryMethod = _queryMethods[_i10];
2409
+ queryAndChildGetterDescriptors[queryMethod] = {
2410
+ value: function value(arg) {
2411
+ var vm = getAssociatedVM(this);
2412
+ var elm = vm.elm,
2413
+ renderer = vm.renderer;
2414
+
2415
+ return renderer[queryMethod](elm, arg);
2416
+ }
2417
+ };
2418
+ };
2419
+
2420
+ for (var _i10 = 0, _queryMethods = queryMethods; _i10 < _queryMethods.length; _i10++) {
2421
+ _loop2();
2422
+ }
2423
+
2424
+ defineProperties(LightningElement.prototype, queryAndChildGetterDescriptors);
2409
2425
  var lightningBasedDescriptors = create(null);
2410
2426
 
2411
2427
  for (var _propName in HTMLElementOriginalDescriptors) {
@@ -2762,8 +2778,8 @@
2762
2778
  }
2763
2779
 
2764
2780
  if (!isUndefined$1(fields)) {
2765
- for (var _i9 = 0, n = fields.length; _i9 < n; _i9++) {
2766
- var _fieldName2 = fields[_i9];
2781
+ for (var _i11 = 0, n = fields.length; _i11 < n; _i11++) {
2782
+ var _fieldName2 = fields[_i11];
2767
2783
  descriptor = getOwnPropertyDescriptor$1(proto, _fieldName2);
2768
2784
  // tracked property. This is only here for backward compatibility purposes.
2769
2785
 
@@ -2981,8 +2997,8 @@
2981
2997
  superObservedAttributes = _SuperClass$observedA === void 0 ? [] : _SuperClass$observedA;
2982
2998
  var descriptors = create(null); // expose getters and setters for each public props on the new Element Bridge
2983
2999
 
2984
- for (var _i10 = 0, _len3 = props.length; _i10 < _len3; _i10 += 1) {
2985
- var _propName2 = props[_i10];
3000
+ for (var _i12 = 0, _len3 = props.length; _i12 < _len3; _i12 += 1) {
3001
+ var _propName2 = props[_i12];
2986
3002
  attributeToPropMap[htmlPropertyToAttribute(_propName2)] = _propName2;
2987
3003
  descriptors[_propName2] = {
2988
3004
  get: createGetter(_propName2),
@@ -2993,8 +3009,8 @@
2993
3009
  } // expose public methods as props on the new Element Bridge
2994
3010
 
2995
3011
 
2996
- for (var _i11 = 0, _len4 = methods.length; _i11 < _len4; _i11 += 1) {
2997
- var methodName = methods[_i11];
3012
+ for (var _i13 = 0, _len4 = methods.length; _i13 < _len4; _i13 += 1) {
3013
+ var methodName = methods[_i13];
2998
3014
  descriptors[methodName] = {
2999
3015
  value: createMethodCaller(methodName),
3000
3016
  writable: true,
@@ -4165,8 +4181,8 @@
4165
4181
  function evaluateStylesheetsContent(stylesheets, stylesheetToken, vm) {
4166
4182
  var content = [];
4167
4183
 
4168
- for (var _i12 = 0; _i12 < stylesheets.length; _i12++) {
4169
- var stylesheet = stylesheets[_i12];
4184
+ for (var _i14 = 0; _i14 < stylesheets.length; _i14++) {
4185
+ var stylesheet = stylesheets[_i14];
4170
4186
 
4171
4187
  if (isArray$1(stylesheet)) {
4172
4188
  ArrayPush$1.apply(content, evaluateStylesheetsContent(stylesheet, stylesheetToken, vm));
@@ -4236,8 +4252,8 @@
4236
4252
  && shadowMode === 1
4237
4253
  /* Synthetic */
4238
4254
  ) {
4239
- for (var _i13 = 0; _i13 < stylesheets.length; _i13++) {
4240
- renderer.insertGlobalStylesheet(stylesheets[_i13]);
4255
+ for (var _i15 = 0; _i15 < stylesheets.length; _i15++) {
4256
+ renderer.insertGlobalStylesheet(stylesheets[_i15]);
4241
4257
  }
4242
4258
  } else if (renderer.ssr) {
4243
4259
  // native shadow or light DOM, SSR
@@ -4248,12 +4264,12 @@
4248
4264
  var root = getNearestNativeShadowComponent(vm);
4249
4265
  var isGlobal = isNull(root);
4250
4266
 
4251
- for (var _i14 = 0; _i14 < stylesheets.length; _i14++) {
4267
+ for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
4252
4268
  if (isGlobal) {
4253
- renderer.insertGlobalStylesheet(stylesheets[_i14]);
4269
+ renderer.insertGlobalStylesheet(stylesheets[_i16]);
4254
4270
  } else {
4255
4271
  // local level
4256
- renderer.insertStylesheet(stylesheets[_i14], root.cmpRoot);
4272
+ renderer.insertStylesheet(stylesheets[_i16], root.cmpRoot);
4257
4273
  }
4258
4274
  }
4259
4275
  }
@@ -4352,9 +4368,9 @@
4352
4368
  if (vm.renderMode === 0
4353
4369
  /* Light */
4354
4370
  ) {
4355
- assert.isTrue(template.renderMode === 'light', "Light DOM components can't render shadow DOM templates. Add an 'lwc:render-mode=\"light\"' directive on the root template tag.");
4371
+ assert.isTrue(template.renderMode === 'light', "Light DOM components can't render shadow DOM templates. Add an 'lwc:render-mode=\"light\"' directive to the root template tag of ".concat(getComponentTag(vm), "."));
4356
4372
  } else {
4357
- assert.isTrue(isUndefined$1(template.renderMode), "Shadow DOM components template can't render light DOM templates. Either remove the 'lwc:render-mode' directive or set it to 'lwc:render-mode=\"shadow\"");
4373
+ assert.isTrue(isUndefined$1(template.renderMode), "Shadow DOM components template can't render light DOM templates. Either remove the 'lwc:render-mode' directive from ".concat(getComponentTag(vm), " or set it to 'lwc:render-mode=\"shadow\""));
4358
4374
  }
4359
4375
  }
4360
4376
 
@@ -4438,8 +4454,8 @@
4438
4454
  var stylesheets = template.stylesheets;
4439
4455
 
4440
4456
  if (!isUndefined$1(stylesheets)) {
4441
- for (var _i15 = 0; _i15 < stylesheets.length; _i15++) {
4442
- if (isTrue(stylesheets[_i15][KEY__SCOPED_CSS])) {
4457
+ for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
4458
+ if (isTrue(stylesheets[_i17][KEY__SCOPED_CSS])) {
4443
4459
  return true;
4444
4460
  }
4445
4461
  }
@@ -4640,8 +4656,8 @@
4640
4656
 
4641
4657
  function register(service) {
4642
4658
 
4643
- for (var _i16 = 0; _i16 < hooks.length; ++_i16) {
4644
- var hookName = hooks[_i16];
4659
+ for (var _i18 = 0; _i18 < hooks.length; ++_i18) {
4660
+ var hookName = hooks[_i18];
4645
4661
 
4646
4662
  if (hookName in service) {
4647
4663
  var l = Services[hookName];
@@ -4661,8 +4677,8 @@
4661
4677
  def = vm.def,
4662
4678
  context = vm.context;
4663
4679
 
4664
- for (var _i17 = 0, _len6 = cbs.length; _i17 < _len6; ++_i17) {
4665
- cbs[_i17].call(undefined, component, {}, def, context);
4680
+ for (var _i19 = 0, _len6 = cbs.length; _i19 < _len6; ++_i19) {
4681
+ cbs[_i19].call(undefined, component, {}, def, context);
4666
4682
  }
4667
4683
  }
4668
4684
  /*
@@ -4982,19 +4998,19 @@
4982
4998
  });
4983
4999
  rehydrateQueue = []; // reset to a new queue
4984
5000
 
4985
- for (var _i18 = 0, _len7 = vms.length; _i18 < _len7; _i18 += 1) {
4986
- var vm = vms[_i18];
5001
+ for (var _i20 = 0, _len7 = vms.length; _i20 < _len7; _i20 += 1) {
5002
+ var vm = vms[_i20];
4987
5003
 
4988
5004
  try {
4989
5005
  rehydrate(vm);
4990
5006
  } catch (error) {
4991
- if (_i18 + 1 < _len7) {
5007
+ if (_i20 + 1 < _len7) {
4992
5008
  // pieces of the queue are still pending to be rehydrated, those should have priority
4993
5009
  if (rehydrateQueue.length === 0) {
4994
5010
  addCallbackToNextTick(flushRehydrationQueue);
4995
5011
  }
4996
5012
 
4997
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i18 + 1));
5013
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i20 + 1));
4998
5014
  } // we need to end the measure before throwing.
4999
5015
 
5000
5016
 
@@ -5093,8 +5109,8 @@
5093
5109
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
5094
5110
  // inserted in reserved order.
5095
5111
 
5096
- for (var _i19 = vCustomElementCollection.length - 1; _i19 >= 0; _i19 -= 1) {
5097
- var elm = vCustomElementCollection[_i19].elm; // There are two cases where the element could be undefined:
5112
+ for (var _i21 = vCustomElementCollection.length - 1; _i21 >= 0; _i21 -= 1) {
5113
+ var elm = vCustomElementCollection[_i21].elm; // There are two cases where the element could be undefined:
5098
5114
  // * when there is an error during the construction phase, and an error
5099
5115
  // boundary picks it, there is a possibility that the VCustomElement
5100
5116
  // is not properly initialized, and therefore is should be ignored.
@@ -5128,8 +5144,8 @@
5128
5144
 
5129
5145
 
5130
5146
  function recursivelyDisconnectChildren(vnodes) {
5131
- for (var _i20 = 0, _len8 = vnodes.length; _i20 < _len8; _i20 += 1) {
5132
- var vnode = vnodes[_i20];
5147
+ for (var _i22 = 0, _len8 = vnodes.length; _i22 < _len8; _i22 += 1) {
5148
+ var vnode = vnodes[_i22];
5133
5149
 
5134
5150
  if (!isNull(vnode) && isArray$1(vnode.children) && !isUndefined$1(vnode.elm)) {
5135
5151
  // vnode is a VElement with children
@@ -5153,8 +5169,8 @@
5153
5169
  renderer = vm.renderer;
5154
5170
  var rootNode = getRenderRoot(vm);
5155
5171
 
5156
- for (var _i21 = 0, _len9 = children.length; _i21 < _len9; _i21++) {
5157
- var child = children[_i21];
5172
+ for (var _i23 = 0, _len9 = children.length; _i23 < _len9; _i23++) {
5173
+ var child = children[_i23];
5158
5174
 
5159
5175
  if (!isNull(child) && !isUndefined$1(child.elm)) {
5160
5176
  renderer.remove(child.elm, rootNode);
@@ -5199,8 +5215,8 @@
5199
5215
  var oldSlots = vm.cmpSlots;
5200
5216
  var cmpSlots = vm.cmpSlots = create(null);
5201
5217
 
5202
- for (var _i22 = 0, _len10 = children.length; _i22 < _len10; _i22 += 1) {
5203
- var vnode = children[_i22];
5218
+ for (var _i24 = 0, _len10 = children.length; _i24 < _len10; _i24 += 1) {
5219
+ var vnode = children[_i24];
5204
5220
 
5205
5221
  if (isNull(vnode)) {
5206
5222
  continue;
@@ -5230,8 +5246,8 @@
5230
5246
  return;
5231
5247
  }
5232
5248
 
5233
- for (var _i23 = 0, _len11 = oldKeys.length; _i23 < _len11; _i23 += 1) {
5234
- var key = oldKeys[_i23];
5249
+ for (var _i25 = 0, _len11 = oldKeys.length; _i25 < _len11; _i25 += 1) {
5250
+ var key = oldKeys[_i25];
5235
5251
 
5236
5252
  if (isUndefined$1(cmpSlots[key]) || oldSlots[key].length !== cmpSlots[key].length) {
5237
5253
  markComponentAsDirty(vm);
@@ -5570,8 +5586,8 @@
5570
5586
  function connectWireAdapters(vm) {
5571
5587
  var wiredConnecting = vm.context.wiredConnecting;
5572
5588
 
5573
- for (var _i24 = 0, _len12 = wiredConnecting.length; _i24 < _len12; _i24 += 1) {
5574
- wiredConnecting[_i24]();
5589
+ for (var _i26 = 0, _len12 = wiredConnecting.length; _i26 < _len12; _i26 += 1) {
5590
+ wiredConnecting[_i26]();
5575
5591
  }
5576
5592
  }
5577
5593
 
@@ -5579,8 +5595,8 @@
5579
5595
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5580
5596
  runWithBoundaryProtection(vm, vm, noop, function () {
5581
5597
  // job
5582
- for (var _i25 = 0, _len13 = wiredDisconnecting.length; _i25 < _len13; _i25 += 1) {
5583
- wiredDisconnecting[_i25]();
5598
+ for (var _i27 = 0, _len13 = wiredDisconnecting.length; _i27 < _len13; _i27 += 1) {
5599
+ wiredDisconnecting[_i27]();
5584
5600
  }
5585
5601
  }, noop);
5586
5602
  }
@@ -5649,7 +5665,7 @@
5649
5665
 
5650
5666
  return reactiveMembrane.getReadOnlyProxy(obj);
5651
5667
  }
5652
- /* version: 2.5.1 */
5668
+ /* version: 2.5.4 */
5653
5669
 
5654
5670
  /*
5655
5671
  * Copyright (c) 2018, salesforce.com, inc.
@@ -5871,6 +5887,24 @@
5871
5887
  getElementsByClassName: function getElementsByClassName(element, names) {
5872
5888
  return element.getElementsByClassName(names);
5873
5889
  },
5890
+ getChildren: function getChildren(element) {
5891
+ return element.children;
5892
+ },
5893
+ getChildNodes: function getChildNodes(element) {
5894
+ return element.childNodes;
5895
+ },
5896
+ getFirstChild: function getFirstChild(element) {
5897
+ return element.firstChild;
5898
+ },
5899
+ getFirstElementChild: function getFirstElementChild(element) {
5900
+ return element.firstElementChild;
5901
+ },
5902
+ getLastChild: function getLastChild(element) {
5903
+ return element.lastChild;
5904
+ },
5905
+ getLastElementChild: function getLastElementChild(element) {
5906
+ return element.lastElementChild;
5907
+ },
5874
5908
  isConnected: function isConnected(node) {
5875
5909
  return node.isConnected;
5876
5910
  },
@@ -6179,7 +6213,7 @@
6179
6213
  });
6180
6214
  freeze(LightningElement);
6181
6215
  seal(LightningElement.prototype);
6182
- /* version: 2.5.1 */
6216
+ /* version: 2.5.4 */
6183
6217
 
6184
6218
  exports.LightningElement = LightningElement;
6185
6219
  exports.__unstable__ProfilerControl = profilerControl;
@@ -6208,4 +6242,4 @@
6208
6242
 
6209
6243
  Object.defineProperty(exports, '__esModule', { value: true });
6210
6244
 
6211
- })));
6245
+ }));
@@ -339,7 +339,7 @@ function htmlPropertyToAttribute(propName) {
339
339
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
340
340
  return attributeName;
341
341
  }
342
- /** version: 2.5.1 */
342
+ /** version: 2.5.4 */
343
343
 
344
344
  /*
345
345
  * Copyright (c) 2020, salesforce.com, inc.
@@ -390,6 +390,7 @@ const features = {
390
390
  ENABLE_HMR: null,
391
391
  ENABLE_INNER_OUTER_TEXT_PATCH: null,
392
392
  ENABLE_ELEMENT_PATCH: null,
393
+ ENABLE_FORCE_NATIVE_SHADOW_MODE_FOR_TEST: null,
393
394
  ENABLE_NODE_LIST_PATCH: null,
394
395
  ENABLE_HTML_COLLECTIONS_PATCH: null,
395
396
  ENABLE_NODE_PATCH: null,
@@ -459,7 +460,7 @@ function setFeatureFlagForTest(name, value) {
459
460
  setFeatureFlag(name, value);
460
461
  }
461
462
  }
462
- /** version: 2.5.1 */
463
+ /** version: 2.5.4 */
463
464
 
464
465
  /* proxy-compat-disable */
465
466
 
@@ -2831,9 +2832,9 @@ function attachShadow(vm) {
2831
2832
  }
2832
2833
  }
2833
2834
 
2834
- function warnIfInvokedDuringConstruction(vm, methodName) {
2835
+ function warnIfInvokedDuringConstruction(vm, methodOrPropName) {
2835
2836
  if (isBeingConstructed(vm)) {
2836
- logError(`this.${methodName}() should not be called during the construction of the custom element for ${getComponentTag(vm)} because the element is not yet in the DOM or has no children yet.`);
2837
+ logError(`this.${methodOrPropName} should not be called during the construction of the custom element for ${getComponentTag(vm)} because the element is not yet in the DOM or has no children yet.`);
2837
2838
  }
2838
2839
  } // @ts-ignore
2839
2840
 
@@ -2993,76 +2994,12 @@ LightningElement.prototype = {
2993
2994
  } = vm;
2994
2995
 
2995
2996
  if (process.env.NODE_ENV !== 'production') {
2996
- warnIfInvokedDuringConstruction(vm, 'getBoundingClientRect');
2997
+ warnIfInvokedDuringConstruction(vm, 'getBoundingClientRect()');
2997
2998
  }
2998
2999
 
2999
3000
  return getBoundingClientRect(elm);
3000
3001
  },
3001
3002
 
3002
- querySelector(selectors) {
3003
- const vm = getAssociatedVM(this);
3004
- const {
3005
- elm,
3006
- renderer: {
3007
- querySelector
3008
- }
3009
- } = vm;
3010
-
3011
- if (process.env.NODE_ENV !== 'production') {
3012
- warnIfInvokedDuringConstruction(vm, 'querySelector');
3013
- }
3014
-
3015
- return querySelector(elm, selectors);
3016
- },
3017
-
3018
- querySelectorAll(selectors) {
3019
- const vm = getAssociatedVM(this);
3020
- const {
3021
- elm,
3022
- renderer: {
3023
- querySelectorAll
3024
- }
3025
- } = vm;
3026
-
3027
- if (process.env.NODE_ENV !== 'production') {
3028
- warnIfInvokedDuringConstruction(vm, 'querySelectorAll');
3029
- }
3030
-
3031
- return querySelectorAll(elm, selectors);
3032
- },
3033
-
3034
- getElementsByTagName(tagNameOrWildCard) {
3035
- const vm = getAssociatedVM(this);
3036
- const {
3037
- elm,
3038
- renderer: {
3039
- getElementsByTagName
3040
- }
3041
- } = vm;
3042
-
3043
- if (process.env.NODE_ENV !== 'production') {
3044
- warnIfInvokedDuringConstruction(vm, 'getElementsByTagName');
3045
- }
3046
-
3047
- return getElementsByTagName(elm, tagNameOrWildCard);
3048
- },
3049
-
3050
- getElementsByClassName(names) {
3051
- const vm = getAssociatedVM(this);
3052
- const {
3053
- elm,
3054
- renderer: {
3055
- getElementsByClassName
3056
- }
3057
- } = vm;
3058
-
3059
- if (process.env.NODE_ENV !== 'production') {
3060
- warnIfInvokedDuringConstruction(vm, 'getElementsByClassName');
3061
- }
3062
-
3063
- return getElementsByClassName(elm, names);
3064
- },
3065
-
3066
3003
  get isConnected() {
3067
3004
  const {
3068
3005
  elm,
@@ -3122,6 +3059,50 @@ LightningElement.prototype = {
3122
3059
  }
3123
3060
 
3124
3061
  };
3062
+ const queryAndChildGetterDescriptors = create(null);
3063
+ const childGetters = [['children', 'getChildren'], ['childNodes', 'getChildNodes'], ['firstChild', 'getFirstChild'], ['firstElementChild', 'getFirstElementChild'], ['lastChild', 'getLastChild'], ['lastElementChild', 'getLastElementChild']]; // Generic passthrough for child getters on HTMLElement to the relevant Renderer APIs
3064
+
3065
+ for (const [elementProp, rendererMethod] of childGetters) {
3066
+ queryAndChildGetterDescriptors[elementProp] = {
3067
+ get() {
3068
+ const vm = getAssociatedVM(this);
3069
+ const {
3070
+ elm,
3071
+ renderer
3072
+ } = vm;
3073
+
3074
+ if (process.env.NODE_ENV !== 'production') {
3075
+ warnIfInvokedDuringConstruction(vm, elementProp);
3076
+ }
3077
+
3078
+ return renderer[rendererMethod](elm);
3079
+ }
3080
+
3081
+ };
3082
+ }
3083
+
3084
+ const queryMethods = ['getElementsByClassName', 'getElementsByTagName', 'querySelector', 'querySelectorAll']; // Generic passthrough for query APIs on HTMLElement to the relevant Renderer APIs
3085
+
3086
+ for (const queryMethod of queryMethods) {
3087
+ queryAndChildGetterDescriptors[queryMethod] = {
3088
+ value(arg) {
3089
+ const vm = getAssociatedVM(this);
3090
+ const {
3091
+ elm,
3092
+ renderer
3093
+ } = vm;
3094
+
3095
+ if (process.env.NODE_ENV !== 'production') {
3096
+ warnIfInvokedDuringConstruction(vm, `${queryMethod}()`);
3097
+ }
3098
+
3099
+ return renderer[queryMethod](elm, arg);
3100
+ }
3101
+
3102
+ };
3103
+ }
3104
+
3105
+ defineProperties(LightningElement.prototype, queryAndChildGetterDescriptors);
3125
3106
  const lightningBasedDescriptors = create(null);
3126
3107
 
3127
3108
  for (const propName in HTMLElementOriginalDescriptors) {
@@ -5694,9 +5675,9 @@ function validateLightDomTemplate(template, vm) {
5694
5675
  if (vm.renderMode === 0
5695
5676
  /* Light */
5696
5677
  ) {
5697
- assert.isTrue(template.renderMode === 'light', `Light DOM components can't render shadow DOM templates. Add an 'lwc:render-mode="light"' directive on the root template tag.`);
5678
+ assert.isTrue(template.renderMode === 'light', `Light DOM components can't render shadow DOM templates. Add an 'lwc:render-mode="light"' directive to the root template tag of ${getComponentTag(vm)}.`);
5698
5679
  } else {
5699
- assert.isTrue(isUndefined$1(template.renderMode), `Shadow DOM components template can't render light DOM templates. Either remove the 'lwc:render-mode' directive or set it to 'lwc:render-mode="shadow"`);
5680
+ assert.isTrue(isUndefined$1(template.renderMode), `Shadow DOM components template can't render light DOM templates. Either remove the 'lwc:render-mode' directive from ${getComponentTag(vm)} or set it to 'lwc:render-mode="shadow"`);
5700
5681
  }
5701
5682
  }
5702
5683
 
@@ -6246,6 +6227,12 @@ function createVM(elm, def, options) {
6246
6227
  vm.toString = () => {
6247
6228
  return `[object:vm ${def.name} (${vm.idx})]`;
6248
6229
  };
6230
+
6231
+ if (runtimeFlags.ENABLE_FORCE_NATIVE_SHADOW_MODE_FOR_TEST) {
6232
+ vm.shadowMode = 0
6233
+ /* Native */
6234
+ ;
6235
+ }
6249
6236
  } // Create component instance associated to the vm and the element.
6250
6237
 
6251
6238
 
@@ -7157,7 +7144,7 @@ function readonly(obj) {
7157
7144
 
7158
7145
  return reactiveMembrane.getReadOnlyProxy(obj);
7159
7146
  }
7160
- /* version: 2.5.1 */
7147
+ /* version: 2.5.4 */
7161
7148
 
7162
7149
  /*
7163
7150
  * Copyright (c) 2020, salesforce.com, inc.
@@ -7483,6 +7470,12 @@ const renderer = {
7483
7470
  querySelectorAll: unsupportedMethod('querySelectorAll'),
7484
7471
  getElementsByTagName: unsupportedMethod('getElementsByTagName'),
7485
7472
  getElementsByClassName: unsupportedMethod('getElementsByClassName'),
7473
+ getChildren: unsupportedMethod('getChildren'),
7474
+ getChildNodes: unsupportedMethod('getChildNodes'),
7475
+ getFirstChild: unsupportedMethod('getFirstChild'),
7476
+ getFirstElementChild: unsupportedMethod('getFirstElementChild'),
7477
+ getLastChild: unsupportedMethod('getLastChild'),
7478
+ getLastElementChild: unsupportedMethod('getLastElementChild'),
7486
7479
 
7487
7480
  defineCustomElement(name, constructor, _options) {
7488
7481
  registerCustomElement(name, constructor);
@@ -7628,7 +7621,7 @@ function renderComponent(tagName, Ctor, props = {}) {
7628
7621
 
7629
7622
  freeze(LightningElement);
7630
7623
  seal(LightningElement.prototype);
7631
- /* version: 2.5.1 */
7624
+ /* version: 2.5.4 */
7632
7625
 
7633
7626
  exports.LightningElement = LightningElement;
7634
7627
  exports.api = api$1;