lwc 2.14.2 → 2.15.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 (39) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +155 -13
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +156 -12
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +147 -10
  5. package/dist/engine-dom/iife/es5/engine-dom.js +268 -40
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +253 -38
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +156 -12
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +147 -10
  11. package/dist/engine-dom/umd/es5/engine-dom.js +268 -40
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +253 -38
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +129 -29
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +128 -30
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +24 -4
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +24 -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 +24 -4
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +29 -3
  22. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -2
  23. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +29 -3
  24. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +24 -4
  25. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  26. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +24 -4
  27. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +29 -3
  28. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -2
  29. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +29 -3
  30. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  31. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  32. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  33. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  34. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  35. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  36. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  37. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  38. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  39. package/package.json +7 -7
@@ -295,6 +295,7 @@
295
295
 
296
296
  var KEY__IS_NATIVE_SHADOW_ROOT_DEFINED = '$isNativeShadowRootDefined$';
297
297
  var KEY__SHADOW_RESOLVER = '$shadowResolver$';
298
+ var KEY__SHADOW_STATIC = '$shadowStaticNode$';
298
299
  var KEY__SHADOW_TOKEN = '$shadowToken$';
299
300
  var KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
300
301
  var KEY__SCOPED_CSS = '$scoped$';
@@ -350,7 +351,7 @@
350
351
  var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
351
352
  var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
352
353
  var XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
353
- /** version: 2.14.2 */
354
+ /** version: 2.15.0 */
354
355
 
355
356
  /*
356
357
  * Copyright (c) 2018, salesforce.com, inc.
@@ -3298,6 +3299,12 @@
3298
3299
  patchComment(n1, n2, renderer);
3299
3300
  break;
3300
3301
 
3302
+ case 4
3303
+ /* Static */
3304
+ :
3305
+ n2.elm = n1.elm;
3306
+ break;
3307
+
3301
3308
  case 2
3302
3309
  /* Element */
3303
3310
  :
@@ -3330,6 +3337,13 @@
3330
3337
  mountComment(node, parent, anchor, renderer);
3331
3338
  break;
3332
3339
 
3340
+ case 4
3341
+ /* Static */
3342
+ :
3343
+ // VStatic cannot have a custom renderer associated to them, using owner's renderer
3344
+ mountStatic(node, parent, anchor, renderer);
3345
+ break;
3346
+
3333
3347
  case 2
3334
3348
  /* Element */
3335
3349
  :
@@ -3400,6 +3414,29 @@
3400
3414
  patchChildren(n1.children, n2.children, elm, renderer);
3401
3415
  }
3402
3416
 
3417
+ function mountStatic(vnode, parent, anchor, renderer) {
3418
+ var owner = vnode.owner;
3419
+ var cloneNode = renderer.cloneNode,
3420
+ isSyntheticShadowDefined = renderer.isSyntheticShadowDefined;
3421
+ var elm = vnode.elm = cloneNode(vnode.fragment, true);
3422
+ linkNodeToShadow(elm, owner, renderer); // Marks this node as Static to propagate the shadow resolver. must happen after elm is assigned to the proper shadow
3423
+
3424
+ var renderMode = owner.renderMode,
3425
+ shadowMode = owner.shadowMode;
3426
+
3427
+ if (isSyntheticShadowDefined) {
3428
+ if (shadowMode === 1
3429
+ /* Synthetic */
3430
+ || renderMode === 0
3431
+ /* Light */
3432
+ ) {
3433
+ elm[KEY__SHADOW_STATIC] = true;
3434
+ }
3435
+ }
3436
+
3437
+ insertNode(elm, parent, anchor, renderer);
3438
+ }
3439
+
3403
3440
  function mountCustomElement(vnode, parent, anchor, renderer) {
3404
3441
  var sel = vnode.sel,
3405
3442
  owner = vnode.owner;
@@ -3940,6 +3977,20 @@
3940
3977
 
3941
3978
  function addVNodeToChildLWC(vnode) {
3942
3979
  ArrayPush$1.call(getVMBeingRendered().velements, vnode);
3980
+ } // [st]atic node
3981
+
3982
+
3983
+ function st(fragment, key) {
3984
+ return {
3985
+ type: 4
3986
+ /* Static */
3987
+ ,
3988
+ sel: undefined,
3989
+ key: key,
3990
+ elm: undefined,
3991
+ fragment: fragment,
3992
+ owner: getVMBeingRendered()
3993
+ };
3943
3994
  } // [h]tml node
3944
3995
 
3945
3996
 
@@ -4306,6 +4357,7 @@
4306
4357
  co: co,
4307
4358
  dc: dc,
4308
4359
  ti: ti,
4360
+ st: st,
4309
4361
  gid: gid,
4310
4362
  fid: fid,
4311
4363
  shc: shc
@@ -4510,8 +4562,7 @@
4510
4562
  // This works in the client, because the stylesheets are created, and cached in the VM
4511
4563
  // the first time the VM renders.
4512
4564
  // native shadow or light DOM, SSR
4513
- var combinedStylesheetContent = ArrayJoin.call(stylesheets, '\n');
4514
- return createInlineStyleVNode(combinedStylesheetContent);
4565
+ return ArrayMap.call(stylesheets, createInlineStyleVNode);
4515
4566
  } else {
4516
4567
  // native shadow or light DOM, DOM renderer
4517
4568
  var root = getNearestNativeShadowComponent(vm); // null root means a global style
@@ -4623,6 +4674,91 @@
4623
4674
  }
4624
4675
  }
4625
4676
 
4677
+ function buildParseFragmentFn(createFragmentFn) {
4678
+ return function (strings) {
4679
+ for (var _len5 = arguments.length, keys = new Array(_len5 > 1 ? _len5 - 1 : 0), _key3 = 1; _key3 < _len5; _key3++) {
4680
+ keys[_key3 - 1] = arguments[_key3];
4681
+ }
4682
+
4683
+ var cache = create(null);
4684
+ return function () {
4685
+ var _getVMBeingRendered = getVMBeingRendered(),
4686
+ _getVMBeingRendered$c = _getVMBeingRendered.context,
4687
+ hasScopedStyles = _getVMBeingRendered$c.hasScopedStyles,
4688
+ stylesheetToken = _getVMBeingRendered$c.stylesheetToken,
4689
+ shadowMode = _getVMBeingRendered.shadowMode,
4690
+ renderer = _getVMBeingRendered.renderer;
4691
+
4692
+ var hasStyleToken = !isUndefined$1(stylesheetToken);
4693
+ var isSyntheticShadow = shadowMode === 1
4694
+ /* Synthetic */
4695
+ ;
4696
+ var cacheKey = 0;
4697
+
4698
+ if (hasStyleToken && hasScopedStyles) {
4699
+ cacheKey |= 1
4700
+ /* HAS_SCOPED_STYLE */
4701
+ ;
4702
+ }
4703
+
4704
+ if (hasStyleToken && isSyntheticShadow) {
4705
+ cacheKey |= 2
4706
+ /* SHADOW_MODE_SYNTHETIC */
4707
+ ;
4708
+ }
4709
+
4710
+ if (!isUndefined$1(cache[cacheKey])) {
4711
+ return cache[cacheKey];
4712
+ }
4713
+
4714
+ var classToken = hasScopedStyles && hasStyleToken ? ' ' + stylesheetToken : '';
4715
+ var classAttrToken = hasScopedStyles && hasStyleToken ? " class=\"".concat(stylesheetToken, "\"") : '';
4716
+ var attrToken = hasStyleToken && isSyntheticShadow ? ' ' + stylesheetToken : '';
4717
+ var htmlFragment = '';
4718
+
4719
+ for (var _i19 = 0, n = keys.length; _i19 < n; _i19++) {
4720
+ switch (keys[_i19]) {
4721
+ case 0:
4722
+ // styleToken in existing class attr
4723
+ htmlFragment += strings[_i19] + classToken;
4724
+ break;
4725
+
4726
+ case 1:
4727
+ // styleToken for added class attr
4728
+ htmlFragment += strings[_i19] + classAttrToken;
4729
+ break;
4730
+
4731
+ case 2:
4732
+ // styleToken as attr
4733
+ htmlFragment += strings[_i19] + attrToken;
4734
+ break;
4735
+
4736
+ case 3:
4737
+ // ${1}${2}
4738
+ htmlFragment += strings[_i19] + classAttrToken + attrToken;
4739
+ break;
4740
+ }
4741
+ }
4742
+
4743
+ htmlFragment += strings[strings.length - 1];
4744
+ cache[cacheKey] = createFragmentFn(htmlFragment, renderer);
4745
+ return cache[cacheKey];
4746
+ };
4747
+ };
4748
+ } // Note: at the moment this code executes, we don't have a renderer yet.
4749
+
4750
+
4751
+ var parseFragment = buildParseFragmentFn(function (html, renderer) {
4752
+ var createFragment = renderer.createFragment;
4753
+ return createFragment(html);
4754
+ });
4755
+ var parseSVGFragment = buildParseFragmentFn(function (html, renderer) {
4756
+ var createFragment = renderer.createFragment,
4757
+ getFirstChild = renderer.getFirstChild;
4758
+ var fragment = createFragment('<svg>' + html + '</svg>');
4759
+ return getFirstChild(fragment);
4760
+ });
4761
+
4626
4762
  function evaluateTemplate(vm, html) {
4627
4763
 
4628
4764
  var isUpdatingTemplateInception = isUpdatingTemplate;
@@ -4670,7 +4806,7 @@
4670
4806
  // re-rendering.
4671
4807
 
4672
4808
  var stylesheetsContent = getStylesheetsContent(vm, html);
4673
- context.styleVNode = stylesheetsContent.length === 0 ? null : createStylesheet(vm, stylesheetsContent);
4809
+ context.styleVNodes = stylesheetsContent.length === 0 ? null : createStylesheet(vm, stylesheetsContent);
4674
4810
  }
4675
4811
 
4676
4812
  if ("production" !== 'production') ; // right before producing the vnodes, we clear up all internal references
@@ -4681,10 +4817,10 @@
4681
4817
 
4682
4818
  isUpdatingTemplate = true;
4683
4819
  vnodes = html.call(undefined, api, component, cmpSlots, context.tplCache);
4684
- var styleVNode = context.styleVNode;
4820
+ var styleVNodes = context.styleVNodes;
4685
4821
 
4686
- if (!isNull(styleVNode)) {
4687
- ArrayUnshift.call(vnodes, styleVNode);
4822
+ if (!isNull(styleVNodes)) {
4823
+ ArrayUnshift.apply(vnodes, styleVNodes);
4688
4824
  }
4689
4825
  });
4690
4826
  }, function () {
@@ -4703,8 +4839,8 @@
4703
4839
  var stylesheets = template.stylesheets;
4704
4840
 
4705
4841
  if (!isUndefined$1(stylesheets)) {
4706
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
4707
- if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
4842
+ for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
4843
+ if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
4708
4844
  return true;
4709
4845
  }
4710
4846
  }
@@ -4893,8 +5029,8 @@
4893
5029
 
4894
5030
  function register(service) {
4895
5031
 
4896
- for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
4897
- var hookName = hooks[_i20];
5032
+ for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
5033
+ var hookName = hooks[_i21];
4898
5034
 
4899
5035
  if (hookName in service) {
4900
5036
  var l = Services[hookName];
@@ -4914,8 +5050,8 @@
4914
5050
  def = vm.def,
4915
5051
  context = vm.context;
4916
5052
 
4917
- for (var _i21 = 0, len = cbs.length; _i21 < len; ++_i21) {
4918
- cbs[_i21].call(undefined, component, {}, def, context);
5053
+ for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
5054
+ cbs[_i22].call(undefined, component, {}, def, context);
4919
5055
  }
4920
5056
  }
4921
5057
  /*
@@ -5053,7 +5189,7 @@
5053
5189
  hasTokenInClass: undefined,
5054
5190
  hasTokenInAttribute: undefined,
5055
5191
  hasScopedStyles: undefined,
5056
- styleVNode: null,
5192
+ styleVNodes: null,
5057
5193
  tplCache: EmptyObject,
5058
5194
  wiredConnecting: EmptyArray,
5059
5195
  wiredDisconnecting: EmptyArray
@@ -5247,19 +5383,19 @@
5247
5383
  });
5248
5384
  rehydrateQueue = []; // reset to a new queue
5249
5385
 
5250
- for (var _i22 = 0, len = vms.length; _i22 < len; _i22 += 1) {
5251
- var vm = vms[_i22];
5386
+ for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
5387
+ var vm = vms[_i23];
5252
5388
 
5253
5389
  try {
5254
5390
  rehydrate(vm);
5255
5391
  } catch (error) {
5256
- if (_i22 + 1 < len) {
5392
+ if (_i23 + 1 < len) {
5257
5393
  // pieces of the queue are still pending to be rehydrated, those should have priority
5258
5394
  if (rehydrateQueue.length === 0) {
5259
5395
  addCallbackToNextTick(flushRehydrationQueue);
5260
5396
  }
5261
5397
 
5262
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i22 + 1));
5398
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
5263
5399
  } // we need to end the measure before throwing.
5264
5400
 
5265
5401
 
@@ -5358,8 +5494,8 @@
5358
5494
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
5359
5495
  // inserted in reserved order.
5360
5496
 
5361
- for (var _i23 = vCustomElementCollection.length - 1; _i23 >= 0; _i23 -= 1) {
5362
- var elm = vCustomElementCollection[_i23].elm; // There are two cases where the element could be undefined:
5497
+ for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
5498
+ var elm = vCustomElementCollection[_i24].elm; // There are two cases where the element could be undefined:
5363
5499
  // * when there is an error during the construction phase, and an error
5364
5500
  // boundary picks it, there is a possibility that the VCustomElement
5365
5501
  // is not properly initialized, and therefore is should be ignored.
@@ -5393,8 +5529,8 @@
5393
5529
 
5394
5530
 
5395
5531
  function recursivelyDisconnectChildren(vnodes) {
5396
- for (var _i24 = 0, len = vnodes.length; _i24 < len; _i24 += 1) {
5397
- var vnode = vnodes[_i24];
5532
+ for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
5533
+ var vnode = vnodes[_i25];
5398
5534
 
5399
5535
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
5400
5536
  switch (vnode.type) {
@@ -5426,8 +5562,8 @@
5426
5562
  renderRoot = vm.renderRoot,
5427
5563
  remove = vm.renderer.remove;
5428
5564
 
5429
- for (var _i25 = 0, len = children.length; _i25 < len; _i25++) {
5430
- var child = children[_i25];
5565
+ for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
5566
+ var child = children[_i26];
5431
5567
 
5432
5568
  if (!isNull(child) && !isUndefined$1(child.elm)) {
5433
5569
  remove(child.elm, renderRoot);
@@ -5780,8 +5916,8 @@
5780
5916
  function connectWireAdapters(vm) {
5781
5917
  var wiredConnecting = vm.context.wiredConnecting;
5782
5918
 
5783
- for (var _i26 = 0, len = wiredConnecting.length; _i26 < len; _i26 += 1) {
5784
- wiredConnecting[_i26]();
5919
+ for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
5920
+ wiredConnecting[_i27]();
5785
5921
  }
5786
5922
  }
5787
5923
 
@@ -5789,8 +5925,8 @@
5789
5925
  var wiredDisconnecting = vm.context.wiredDisconnecting;
5790
5926
  runWithBoundaryProtection(vm, vm, noop, function () {
5791
5927
  // job
5792
- for (var _i27 = 0, len = wiredDisconnecting.length; _i27 < len; _i27 += 1) {
5793
- wiredDisconnecting[_i27]();
5928
+ for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
5929
+ wiredDisconnecting[_i28]();
5794
5930
  }
5795
5931
  }, noop);
5796
5932
  }
@@ -5910,6 +6046,13 @@
5910
6046
  hydratedNode = hydrateComment(node, vnode, renderer);
5911
6047
  break;
5912
6048
 
6049
+ case 4
6050
+ /* Static */
6051
+ :
6052
+ // VStatic are cacheable and cannot have custom renderer associated to them
6053
+ hydratedNode = hydrateStaticElement(node, vnode, renderer);
6054
+ break;
6055
+
5913
6056
  case 2
5914
6057
  /* Element */
5915
6058
  :
@@ -5956,6 +6099,15 @@
5956
6099
  return node;
5957
6100
  }
5958
6101
 
6102
+ function hydrateStaticElement(elm, vnode, renderer) {
6103
+ if (!areCompatibleNodes(vnode.fragment, elm, vnode, renderer)) {
6104
+ return handleMismatch(elm, vnode, renderer);
6105
+ }
6106
+
6107
+ vnode.elm = elm;
6108
+ return elm;
6109
+ }
6110
+
5959
6111
  function hydrateElement(elm, vnode, renderer) {
5960
6112
  if (!hasCorrectNodeType(vnode, elm, 1
5961
6113
  /* ELEMENT */
@@ -6038,8 +6190,8 @@
6038
6190
  var anchor = null;
6039
6191
  var renderer = owner.renderer;
6040
6192
 
6041
- for (var _i28 = 0; _i28 < children.length; _i28++) {
6042
- var childVnode = children[_i28];
6193
+ for (var _i29 = 0; _i29 < children.length; _i29++) {
6194
+ var childVnode = children[_i29];
6043
6195
 
6044
6196
  if (!isNull(childVnode)) {
6045
6197
  if (nextNode) {
@@ -6116,8 +6268,8 @@
6116
6268
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
6117
6269
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
6118
6270
 
6119
- for (var _i29 = 0, _Object$entries = Object.entries(attrs); _i29 < _Object$entries.length; _i29++) {
6120
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i29], 2),
6271
+ for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
6272
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i30], 2),
6121
6273
  attrName = _Object$entries$_i[0],
6122
6274
  attrValue = _Object$entries$_i[1];
6123
6275
 
@@ -6183,8 +6335,8 @@
6183
6335
  var parsedVnodeStyle = parseStyleText(elmStyle);
6184
6336
  var expectedStyle = []; // styleMap is used when style is set to static value.
6185
6337
 
6186
- for (var _i30 = 0, n = styleDecls.length; _i30 < n; _i30++) {
6187
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i30], 3),
6338
+ for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
6339
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i31], 3),
6188
6340
  prop = _styleDecls$_i2[0],
6189
6341
  value = _styleDecls$_i2[1],
6190
6342
  important = _styleDecls$_i2[2];
@@ -6210,6 +6362,57 @@
6210
6362
 
6211
6363
  return nodesAreCompatible;
6212
6364
  }
6365
+
6366
+ function areCompatibleNodes(client, ssr, vnode, renderer) {
6367
+ var getProperty = renderer.getProperty,
6368
+ getAttribute = renderer.getAttribute;
6369
+
6370
+ if (getProperty(client, 'nodeType') === 3
6371
+ /* TEXT */
6372
+ ) {
6373
+ if (!hasCorrectNodeType(vnode, ssr, 3
6374
+ /* TEXT */
6375
+ , renderer)) {
6376
+ return false;
6377
+ }
6378
+
6379
+ return getProperty(client, 'nodeValue') === getProperty(ssr, 'nodeValue');
6380
+ }
6381
+
6382
+ if (getProperty(client, 'nodeType') === 8
6383
+ /* COMMENT */
6384
+ ) {
6385
+ if (!hasCorrectNodeType(vnode, ssr, 8
6386
+ /* COMMENT */
6387
+ , renderer)) {
6388
+ return false;
6389
+ }
6390
+
6391
+ return getProperty(client, 'nodeValue') === getProperty(ssr, 'nodeValue');
6392
+ }
6393
+
6394
+ if (!hasCorrectNodeType(vnode, ssr, 1
6395
+ /* ELEMENT */
6396
+ , renderer)) {
6397
+ return false;
6398
+ }
6399
+
6400
+ var isCompatibleElements = true;
6401
+
6402
+ if (getProperty(client, 'tagName') !== getProperty(ssr, 'tagName')) {
6403
+
6404
+ return false;
6405
+ }
6406
+
6407
+ var clientAttrsNames = getProperty(client, 'getAttributeNames').call(client);
6408
+ clientAttrsNames.forEach(function (attrName) {
6409
+ if (getAttribute(client, attrName) !== getAttribute(ssr, attrName)) {
6410
+ logError("Mismatch hydrating element <".concat(getProperty(client, 'tagName').toLowerCase(), ">: attribute \"").concat(attrName, "\" has different values, expected \"").concat(getAttribute(client, attrName), "\" but found \"").concat(getAttribute(ssr, attrName), "\""), vnode.owner);
6411
+ isCompatibleElements = false;
6412
+ }
6413
+ });
6414
+ return isCompatibleElements;
6415
+ }
6213
6416
  /*
6214
6417
  * Copyright (c) 2018, salesforce.com, inc.
6215
6418
  * All rights reserved.
@@ -6257,7 +6460,7 @@
6257
6460
 
6258
6461
  return ctor;
6259
6462
  }
6260
- /* version: 2.14.2 */
6463
+ /* version: 2.15.0 */
6261
6464
 
6262
6465
  /*
6263
6466
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6511,6 +6714,14 @@
6511
6714
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
6512
6715
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
6513
6716
 
6717
+ function cloneNode(node, deep) {
6718
+ return node.cloneNode(deep);
6719
+ }
6720
+
6721
+ function createFragment(html) {
6722
+ return document.createRange().createContextualFragment(html).firstChild;
6723
+ }
6724
+
6514
6725
  function createElement$1(tagName, namespace) {
6515
6726
  return isUndefined$1(namespace) ? document.createElement(tagName) : document.createElementNS(namespace, tagName);
6516
6727
  }
@@ -6655,6 +6866,8 @@
6655
6866
  isHydrating: isHydrating,
6656
6867
  insert: insert,
6657
6868
  remove: remove,
6869
+ cloneNode: cloneNode,
6870
+ createFragment: createFragment,
6658
6871
  createElement: createElement$1,
6659
6872
  createText: createText,
6660
6873
  createComment: createComment,
@@ -6719,8 +6932,8 @@
6719
6932
  hydrated: true
6720
6933
  });
6721
6934
 
6722
- for (var _i31 = 0, _Object$entries2 = Object.entries(props); _i31 < _Object$entries2.length; _i31++) {
6723
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i31], 2),
6935
+ for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
6936
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
6724
6937
  key = _Object$entries2$_i[0],
6725
6938
  value = _Object$entries2$_i[1];
6726
6939
 
@@ -7045,7 +7258,7 @@
7045
7258
  });
7046
7259
  freeze(LightningElement);
7047
7260
  seal(LightningElement.prototype);
7048
- /* version: 2.14.2 */
7261
+ /* version: 2.15.0 */
7049
7262
 
7050
7263
  exports.LightningElement = LightningElement;
7051
7264
  exports.__unstable__ProfilerControl = profilerControl;
@@ -7059,6 +7272,8 @@
7059
7272
  exports.hydrateComponent = hydrateComponent;
7060
7273
  exports.isComponentConstructor = isComponentConstructor;
7061
7274
  exports.isNodeFromTemplate = isNodeShadowed;
7275
+ exports.parseFragment = parseFragment;
7276
+ exports.parseSVGFragment = parseSVGFragment;
7062
7277
  exports.readonly = readonly;
7063
7278
  exports.register = register;
7064
7279
  exports.registerComponent = registerComponent;