lwc 2.14.2 → 2.17.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
@@ -302,6 +302,7 @@ var LWC = (function (exports) {
302
302
 
303
303
  var KEY__IS_NATIVE_SHADOW_ROOT_DEFINED = '$isNativeShadowRootDefined$';
304
304
  var KEY__SHADOW_RESOLVER = '$shadowResolver$';
305
+ var KEY__SHADOW_STATIC = '$shadowStaticNode$';
305
306
  var KEY__SHADOW_TOKEN = '$shadowToken$';
306
307
  var KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
307
308
  var KEY__SCOPED_CSS = '$scoped$';
@@ -365,9 +366,9 @@ var LWC = (function (exports) {
365
366
  */
366
367
  // Increment whenever the LWC template compiler changes
367
368
 
368
- var LWC_VERSION = "2.14.2";
369
+ var LWC_VERSION = "2.17.0";
369
370
  var LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
370
- /** version: 2.14.2 */
371
+ /** version: 2.17.0 */
371
372
 
372
373
  /*
373
374
  * Copyright (c) 2018, salesforce.com, inc.
@@ -546,7 +547,7 @@ var LWC = (function (exports) {
546
547
  setFeatureFlag(name, value);
547
548
  }
548
549
  }
549
- /** version: 2.14.2 */
550
+ /** version: 2.17.0 */
550
551
 
551
552
  /*
552
553
  * Copyright (c) 2018, salesforce.com, inc.
@@ -4517,6 +4518,12 @@ var LWC = (function (exports) {
4517
4518
  patchComment(n1, n2, renderer);
4518
4519
  break;
4519
4520
 
4521
+ case 4
4522
+ /* Static */
4523
+ :
4524
+ n2.elm = n1.elm;
4525
+ break;
4526
+
4520
4527
  case 2
4521
4528
  /* Element */
4522
4529
  :
@@ -4549,6 +4556,13 @@ var LWC = (function (exports) {
4549
4556
  mountComment(node, parent, anchor, renderer);
4550
4557
  break;
4551
4558
 
4559
+ case 4
4560
+ /* Static */
4561
+ :
4562
+ // VStatic cannot have a custom renderer associated to them, using owner's renderer
4563
+ mountStatic(node, parent, anchor, renderer);
4564
+ break;
4565
+
4552
4566
  case 2
4553
4567
  /* Element */
4554
4568
  :
@@ -4619,6 +4633,39 @@ var LWC = (function (exports) {
4619
4633
  patchChildren(n1.children, n2.children, elm, renderer);
4620
4634
  }
4621
4635
 
4636
+ function mountStatic(vnode, parent, anchor, renderer) {
4637
+ var owner = vnode.owner;
4638
+ var cloneNode = renderer.cloneNode,
4639
+ isSyntheticShadowDefined = renderer.isSyntheticShadowDefined;
4640
+ var elm = vnode.elm = cloneNode(vnode.fragment, true);
4641
+ linkNodeToShadow(elm, owner, renderer); // Marks this node as Static to propagate the shadow resolver. must happen after elm is assigned to the proper shadow
4642
+
4643
+ var renderMode = owner.renderMode,
4644
+ shadowMode = owner.shadowMode;
4645
+
4646
+ if (isSyntheticShadowDefined) {
4647
+ if (shadowMode === 1
4648
+ /* Synthetic */
4649
+ || renderMode === 0
4650
+ /* Light */
4651
+ ) {
4652
+ elm[KEY__SHADOW_STATIC] = true;
4653
+ }
4654
+ }
4655
+
4656
+ if (process.env.NODE_ENV !== 'production') {
4657
+ var isLight = renderMode === 0
4658
+ /* Light */
4659
+ ;
4660
+ patchElementWithRestrictions(elm, {
4661
+ isPortal: false,
4662
+ isLight: isLight
4663
+ });
4664
+ }
4665
+
4666
+ insertNode(elm, parent, anchor, renderer);
4667
+ }
4668
+
4622
4669
  function mountCustomElement(vnode, parent, anchor, renderer) {
4623
4670
  var sel = vnode.sel,
4624
4671
  owner = vnode.owner;
@@ -5204,6 +5251,20 @@ var LWC = (function (exports) {
5204
5251
 
5205
5252
  function addVNodeToChildLWC(vnode) {
5206
5253
  ArrayPush$1.call(getVMBeingRendered().velements, vnode);
5254
+ } // [st]atic node
5255
+
5256
+
5257
+ function st(fragment, key) {
5258
+ return {
5259
+ type: 4
5260
+ /* Static */
5261
+ ,
5262
+ sel: undefined,
5263
+ key: key,
5264
+ elm: undefined,
5265
+ fragment: fragment,
5266
+ owner: getVMBeingRendered()
5267
+ };
5207
5268
  } // [h]tml node
5208
5269
 
5209
5270
 
@@ -5693,6 +5754,7 @@ var LWC = (function (exports) {
5693
5754
  co: co,
5694
5755
  dc: dc,
5695
5756
  ti: ti,
5757
+ st: st,
5696
5758
  gid: gid,
5697
5759
  fid: fid,
5698
5760
  shc: shc
@@ -5905,8 +5967,7 @@ var LWC = (function (exports) {
5905
5967
  // This works in the client, because the stylesheets are created, and cached in the VM
5906
5968
  // the first time the VM renders.
5907
5969
  // native shadow or light DOM, SSR
5908
- var combinedStylesheetContent = ArrayJoin.call(stylesheets, '\n');
5909
- return createInlineStyleVNode(combinedStylesheetContent);
5970
+ return ArrayMap.call(stylesheets, createInlineStyleVNode);
5910
5971
  } else {
5911
5972
  // native shadow or light DOM, DOM renderer
5912
5973
  var root = getNearestNativeShadowComponent(vm); // null root means a global style
@@ -6092,6 +6153,91 @@ var LWC = (function (exports) {
6092
6153
  }
6093
6154
  }
6094
6155
 
6156
+ function buildParseFragmentFn(createFragmentFn) {
6157
+ return function (strings) {
6158
+ for (var _len5 = arguments.length, keys = new Array(_len5 > 1 ? _len5 - 1 : 0), _key3 = 1; _key3 < _len5; _key3++) {
6159
+ keys[_key3 - 1] = arguments[_key3];
6160
+ }
6161
+
6162
+ var cache = create(null);
6163
+ return function () {
6164
+ var _getVMBeingRendered = getVMBeingRendered(),
6165
+ _getVMBeingRendered$c = _getVMBeingRendered.context,
6166
+ hasScopedStyles = _getVMBeingRendered$c.hasScopedStyles,
6167
+ stylesheetToken = _getVMBeingRendered$c.stylesheetToken,
6168
+ shadowMode = _getVMBeingRendered.shadowMode,
6169
+ renderer = _getVMBeingRendered.renderer;
6170
+
6171
+ var hasStyleToken = !isUndefined$1(stylesheetToken);
6172
+ var isSyntheticShadow = shadowMode === 1
6173
+ /* Synthetic */
6174
+ ;
6175
+ var cacheKey = 0;
6176
+
6177
+ if (hasStyleToken && hasScopedStyles) {
6178
+ cacheKey |= 1
6179
+ /* HAS_SCOPED_STYLE */
6180
+ ;
6181
+ }
6182
+
6183
+ if (hasStyleToken && isSyntheticShadow) {
6184
+ cacheKey |= 2
6185
+ /* SHADOW_MODE_SYNTHETIC */
6186
+ ;
6187
+ }
6188
+
6189
+ if (!isUndefined$1(cache[cacheKey])) {
6190
+ return cache[cacheKey];
6191
+ }
6192
+
6193
+ var classToken = hasScopedStyles && hasStyleToken ? ' ' + stylesheetToken : '';
6194
+ var classAttrToken = hasScopedStyles && hasStyleToken ? " class=\"".concat(stylesheetToken, "\"") : '';
6195
+ var attrToken = hasStyleToken && isSyntheticShadow ? ' ' + stylesheetToken : '';
6196
+ var htmlFragment = '';
6197
+
6198
+ for (var _i19 = 0, n = keys.length; _i19 < n; _i19++) {
6199
+ switch (keys[_i19]) {
6200
+ case 0:
6201
+ // styleToken in existing class attr
6202
+ htmlFragment += strings[_i19] + classToken;
6203
+ break;
6204
+
6205
+ case 1:
6206
+ // styleToken for added class attr
6207
+ htmlFragment += strings[_i19] + classAttrToken;
6208
+ break;
6209
+
6210
+ case 2:
6211
+ // styleToken as attr
6212
+ htmlFragment += strings[_i19] + attrToken;
6213
+ break;
6214
+
6215
+ case 3:
6216
+ // ${1}${2}
6217
+ htmlFragment += strings[_i19] + classAttrToken + attrToken;
6218
+ break;
6219
+ }
6220
+ }
6221
+
6222
+ htmlFragment += strings[strings.length - 1];
6223
+ cache[cacheKey] = createFragmentFn(htmlFragment, renderer);
6224
+ return cache[cacheKey];
6225
+ };
6226
+ };
6227
+ } // Note: at the moment this code executes, we don't have a renderer yet.
6228
+
6229
+
6230
+ var parseFragment = buildParseFragmentFn(function (html, renderer) {
6231
+ var createFragment = renderer.createFragment;
6232
+ return createFragment(html);
6233
+ });
6234
+ var parseSVGFragment = buildParseFragmentFn(function (html, renderer) {
6235
+ var createFragment = renderer.createFragment,
6236
+ getFirstChild = renderer.getFirstChild;
6237
+ var fragment = createFragment('<svg>' + html + '</svg>');
6238
+ return getFirstChild(fragment);
6239
+ });
6240
+
6095
6241
  function evaluateTemplate(vm, html) {
6096
6242
  if (process.env.NODE_ENV !== 'production') {
6097
6243
  assert.isTrue(isFunction$1(html), "evaluateTemplate() second argument must be an imported template instead of ".concat(toString$1(html))); // in dev-mode, we support hot swapping of templates, which means that
@@ -6148,7 +6294,7 @@ var LWC = (function (exports) {
6148
6294
  // re-rendering.
6149
6295
 
6150
6296
  var stylesheetsContent = getStylesheetsContent(vm, html);
6151
- context.styleVNode = stylesheetsContent.length === 0 ? null : createStylesheet(vm, stylesheetsContent);
6297
+ context.styleVNodes = stylesheetsContent.length === 0 ? null : createStylesheet(vm, stylesheetsContent);
6152
6298
  }
6153
6299
 
6154
6300
  if (process.env.NODE_ENV !== 'production') {
@@ -6164,10 +6310,10 @@ var LWC = (function (exports) {
6164
6310
 
6165
6311
  isUpdatingTemplate = true;
6166
6312
  vnodes = html.call(undefined, api, component, cmpSlots, context.tplCache);
6167
- var styleVNode = context.styleVNode;
6313
+ var styleVNodes = context.styleVNodes;
6168
6314
 
6169
- if (!isNull(styleVNode)) {
6170
- ArrayUnshift.call(vnodes, styleVNode);
6315
+ if (!isNull(styleVNodes)) {
6316
+ ArrayUnshift.apply(vnodes, styleVNodes);
6171
6317
  }
6172
6318
  });
6173
6319
  }, function () {
@@ -6190,8 +6336,8 @@ var LWC = (function (exports) {
6190
6336
  var stylesheets = template.stylesheets;
6191
6337
 
6192
6338
  if (!isUndefined$1(stylesheets)) {
6193
- for (var _i19 = 0; _i19 < stylesheets.length; _i19++) {
6194
- if (isTrue(stylesheets[_i19][KEY__SCOPED_CSS])) {
6339
+ for (var _i20 = 0; _i20 < stylesheets.length; _i20++) {
6340
+ if (isTrue(stylesheets[_i20][KEY__SCOPED_CSS])) {
6195
6341
  return true;
6196
6342
  }
6197
6343
  }
@@ -6412,8 +6558,8 @@ var LWC = (function (exports) {
6412
6558
  assert.isTrue(isObject(service), "Invalid service declaration, ".concat(service, ": service must be an object"));
6413
6559
  }
6414
6560
 
6415
- for (var _i20 = 0; _i20 < hooks.length; ++_i20) {
6416
- var hookName = hooks[_i20];
6561
+ for (var _i21 = 0; _i21 < hooks.length; ++_i21) {
6562
+ var hookName = hooks[_i21];
6417
6563
 
6418
6564
  if (hookName in service) {
6419
6565
  var l = Services[hookName];
@@ -6436,8 +6582,8 @@ var LWC = (function (exports) {
6436
6582
  def = vm.def,
6437
6583
  context = vm.context;
6438
6584
 
6439
- for (var _i21 = 0, len = cbs.length; _i21 < len; ++_i21) {
6440
- cbs[_i21].call(undefined, component, {}, def, context);
6585
+ for (var _i22 = 0, len = cbs.length; _i22 < len; ++_i22) {
6586
+ cbs[_i22].call(undefined, component, {}, def, context);
6441
6587
  }
6442
6588
  }
6443
6589
  /*
@@ -6586,7 +6732,7 @@ var LWC = (function (exports) {
6586
6732
  hasTokenInClass: undefined,
6587
6733
  hasTokenInAttribute: undefined,
6588
6734
  hasScopedStyles: undefined,
6589
- styleVNode: null,
6735
+ styleVNodes: null,
6590
6736
  tplCache: EmptyObject,
6591
6737
  wiredConnecting: EmptyArray,
6592
6738
  wiredDisconnecting: EmptyArray
@@ -6812,19 +6958,19 @@ var LWC = (function (exports) {
6812
6958
  });
6813
6959
  rehydrateQueue = []; // reset to a new queue
6814
6960
 
6815
- for (var _i22 = 0, len = vms.length; _i22 < len; _i22 += 1) {
6816
- var vm = vms[_i22];
6961
+ for (var _i23 = 0, len = vms.length; _i23 < len; _i23 += 1) {
6962
+ var vm = vms[_i23];
6817
6963
 
6818
6964
  try {
6819
6965
  rehydrate(vm);
6820
6966
  } catch (error) {
6821
- if (_i22 + 1 < len) {
6967
+ if (_i23 + 1 < len) {
6822
6968
  // pieces of the queue are still pending to be rehydrated, those should have priority
6823
6969
  if (rehydrateQueue.length === 0) {
6824
6970
  addCallbackToNextTick(flushRehydrationQueue);
6825
6971
  }
6826
6972
 
6827
- ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i22 + 1));
6973
+ ArrayUnshift.apply(rehydrateQueue, ArraySlice.call(vms, _i23 + 1));
6828
6974
  } // we need to end the measure before throwing.
6829
6975
 
6830
6976
 
@@ -6928,8 +7074,8 @@ var LWC = (function (exports) {
6928
7074
  var vCustomElementCollection = vm.velements; // Reporting disconnection for every child in inverse order since they are
6929
7075
  // inserted in reserved order.
6930
7076
 
6931
- for (var _i23 = vCustomElementCollection.length - 1; _i23 >= 0; _i23 -= 1) {
6932
- var elm = vCustomElementCollection[_i23].elm; // There are two cases where the element could be undefined:
7077
+ for (var _i24 = vCustomElementCollection.length - 1; _i24 >= 0; _i24 -= 1) {
7078
+ var elm = vCustomElementCollection[_i24].elm; // There are two cases where the element could be undefined:
6933
7079
  // * when there is an error during the construction phase, and an error
6934
7080
  // boundary picks it, there is a possibility that the VCustomElement
6935
7081
  // is not properly initialized, and therefore is should be ignored.
@@ -6963,8 +7109,8 @@ var LWC = (function (exports) {
6963
7109
 
6964
7110
 
6965
7111
  function recursivelyDisconnectChildren(vnodes) {
6966
- for (var _i24 = 0, len = vnodes.length; _i24 < len; _i24 += 1) {
6967
- var vnode = vnodes[_i24];
7112
+ for (var _i25 = 0, len = vnodes.length; _i25 < len; _i25 += 1) {
7113
+ var vnode = vnodes[_i25];
6968
7114
 
6969
7115
  if (!isNull(vnode) && !isUndefined$1(vnode.elm)) {
6970
7116
  switch (vnode.type) {
@@ -6996,8 +7142,8 @@ var LWC = (function (exports) {
6996
7142
  renderRoot = vm.renderRoot,
6997
7143
  remove = vm.renderer.remove;
6998
7144
 
6999
- for (var _i25 = 0, len = children.length; _i25 < len; _i25++) {
7000
- var child = children[_i25];
7145
+ for (var _i26 = 0, len = children.length; _i26 < len; _i26++) {
7146
+ var child = children[_i26];
7001
7147
 
7002
7148
  if (!isNull(child) && !isUndefined$1(child.elm)) {
7003
7149
  remove(child.elm, renderRoot);
@@ -7374,8 +7520,8 @@ var LWC = (function (exports) {
7374
7520
  function connectWireAdapters(vm) {
7375
7521
  var wiredConnecting = vm.context.wiredConnecting;
7376
7522
 
7377
- for (var _i26 = 0, len = wiredConnecting.length; _i26 < len; _i26 += 1) {
7378
- wiredConnecting[_i26]();
7523
+ for (var _i27 = 0, len = wiredConnecting.length; _i27 < len; _i27 += 1) {
7524
+ wiredConnecting[_i27]();
7379
7525
  }
7380
7526
  }
7381
7527
 
@@ -7383,8 +7529,8 @@ var LWC = (function (exports) {
7383
7529
  var wiredDisconnecting = vm.context.wiredDisconnecting;
7384
7530
  runWithBoundaryProtection(vm, vm, noop, function () {
7385
7531
  // job
7386
- for (var _i27 = 0, len = wiredDisconnecting.length; _i27 < len; _i27 += 1) {
7387
- wiredDisconnecting[_i27]();
7532
+ for (var _i28 = 0, len = wiredDisconnecting.length; _i28 < len; _i28 += 1) {
7533
+ wiredDisconnecting[_i28]();
7388
7534
  }
7389
7535
  }, noop);
7390
7536
  }
@@ -7510,6 +7656,13 @@ var LWC = (function (exports) {
7510
7656
  hydratedNode = hydrateComment(node, vnode, renderer);
7511
7657
  break;
7512
7658
 
7659
+ case 4
7660
+ /* Static */
7661
+ :
7662
+ // VStatic are cacheable and cannot have custom renderer associated to them
7663
+ hydratedNode = hydrateStaticElement(node, vnode, renderer);
7664
+ break;
7665
+
7513
7666
  case 2
7514
7667
  /* Element */
7515
7668
  :
@@ -7576,6 +7729,15 @@ var LWC = (function (exports) {
7576
7729
  return node;
7577
7730
  }
7578
7731
 
7732
+ function hydrateStaticElement(elm, vnode, renderer) {
7733
+ if (!areCompatibleNodes(vnode.fragment, elm, vnode, renderer)) {
7734
+ return handleMismatch(elm, vnode, renderer);
7735
+ }
7736
+
7737
+ vnode.elm = elm;
7738
+ return elm;
7739
+ }
7740
+
7579
7741
  function hydrateElement(elm, vnode, renderer) {
7580
7742
  if (!hasCorrectNodeType(vnode, elm, 1
7581
7743
  /* ELEMENT */
@@ -7669,8 +7831,8 @@ var LWC = (function (exports) {
7669
7831
  var anchor = null;
7670
7832
  var renderer = owner.renderer;
7671
7833
 
7672
- for (var _i28 = 0; _i28 < children.length; _i28++) {
7673
- var childVnode = children[_i28];
7834
+ for (var _i29 = 0; _i29 < children.length; _i29++) {
7835
+ var childVnode = children[_i29];
7674
7836
 
7675
7837
  if (!isNull(childVnode)) {
7676
7838
  if (nextNode) {
@@ -7766,8 +7928,8 @@ var LWC = (function (exports) {
7766
7928
  var nodesAreCompatible = true; // Validate attributes, though we could always recovery from those by running the update mods.
7767
7929
  // Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
7768
7930
 
7769
- for (var _i29 = 0, _Object$entries = Object.entries(attrs); _i29 < _Object$entries.length; _i29++) {
7770
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i29], 2),
7931
+ for (var _i30 = 0, _Object$entries = Object.entries(attrs); _i30 < _Object$entries.length; _i30++) {
7932
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i30], 2),
7771
7933
  attrName = _Object$entries$_i[0],
7772
7934
  attrValue = _Object$entries$_i[1];
7773
7935
 
@@ -7847,8 +8009,8 @@ var LWC = (function (exports) {
7847
8009
  var parsedVnodeStyle = parseStyleText(elmStyle);
7848
8010
  var expectedStyle = []; // styleMap is used when style is set to static value.
7849
8011
 
7850
- for (var _i30 = 0, n = styleDecls.length; _i30 < n; _i30++) {
7851
- var _styleDecls$_i2 = _slicedToArray(styleDecls[_i30], 3),
8012
+ for (var _i31 = 0, n = styleDecls.length; _i31 < n; _i31++) {
8013
+ var _styleDecls$_i2 = _slicedToArray(styleDecls[_i31], 3),
7852
8014
  prop = _styleDecls$_i2[0],
7853
8015
  value = _styleDecls$_i2[1],
7854
8016
  important = _styleDecls$_i2[2];
@@ -7881,6 +8043,60 @@ var LWC = (function (exports) {
7881
8043
 
7882
8044
  return nodesAreCompatible;
7883
8045
  }
8046
+
8047
+ function areCompatibleNodes(client, ssr, vnode, renderer) {
8048
+ var getProperty = renderer.getProperty,
8049
+ getAttribute = renderer.getAttribute;
8050
+
8051
+ if (getProperty(client, 'nodeType') === 3
8052
+ /* TEXT */
8053
+ ) {
8054
+ if (!hasCorrectNodeType(vnode, ssr, 3
8055
+ /* TEXT */
8056
+ , renderer)) {
8057
+ return false;
8058
+ }
8059
+
8060
+ return getProperty(client, 'nodeValue') === getProperty(ssr, 'nodeValue');
8061
+ }
8062
+
8063
+ if (getProperty(client, 'nodeType') === 8
8064
+ /* COMMENT */
8065
+ ) {
8066
+ if (!hasCorrectNodeType(vnode, ssr, 8
8067
+ /* COMMENT */
8068
+ , renderer)) {
8069
+ return false;
8070
+ }
8071
+
8072
+ return getProperty(client, 'nodeValue') === getProperty(ssr, 'nodeValue');
8073
+ }
8074
+
8075
+ if (!hasCorrectNodeType(vnode, ssr, 1
8076
+ /* ELEMENT */
8077
+ , renderer)) {
8078
+ return false;
8079
+ }
8080
+
8081
+ var isCompatibleElements = true;
8082
+
8083
+ if (getProperty(client, 'tagName') !== getProperty(ssr, 'tagName')) {
8084
+ if (process.env.NODE_ENV !== 'production') {
8085
+ logError("Hydration mismatch: expecting element with tag \"".concat(getProperty(client, 'tagName').toLowerCase(), "\" but found \"").concat(getProperty(ssr, 'tagName').toLowerCase(), "\"."), vnode.owner);
8086
+ }
8087
+
8088
+ return false;
8089
+ }
8090
+
8091
+ var clientAttrsNames = getProperty(client, 'getAttributeNames').call(client);
8092
+ clientAttrsNames.forEach(function (attrName) {
8093
+ if (getAttribute(client, attrName) !== getAttribute(ssr, attrName)) {
8094
+ 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);
8095
+ isCompatibleElements = false;
8096
+ }
8097
+ });
8098
+ return isCompatibleElements;
8099
+ }
7884
8100
  /*
7885
8101
  * Copyright (c) 2018, salesforce.com, inc.
7886
8102
  * All rights reserved.
@@ -8053,7 +8269,7 @@ var LWC = (function (exports) {
8053
8269
 
8054
8270
  return ctor;
8055
8271
  }
8056
- /* version: 2.14.2 */
8272
+ /* version: 2.17.0 */
8057
8273
 
8058
8274
  /*
8059
8275
  * Copyright (c) 2018, salesforce.com, inc.
@@ -8316,6 +8532,14 @@ var LWC = (function (exports) {
8316
8532
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
8317
8533
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
8318
8534
 
8535
+ function cloneNode(node, deep) {
8536
+ return node.cloneNode(deep);
8537
+ }
8538
+
8539
+ function createFragment(html) {
8540
+ return document.createRange().createContextualFragment(html).firstChild;
8541
+ }
8542
+
8319
8543
  function createElement$1(tagName, namespace) {
8320
8544
  return isUndefined$1(namespace) ? document.createElement(tagName) : document.createElementNS(namespace, tagName);
8321
8545
  }
@@ -8466,6 +8690,8 @@ var LWC = (function (exports) {
8466
8690
  isHydrating: isHydrating,
8467
8691
  insert: insert,
8468
8692
  remove: remove,
8693
+ cloneNode: cloneNode,
8694
+ createFragment: createFragment,
8469
8695
  createElement: createElement$1,
8470
8696
  createText: createText,
8471
8697
  createComment: createComment,
@@ -8530,8 +8756,8 @@ var LWC = (function (exports) {
8530
8756
  hydrated: true
8531
8757
  });
8532
8758
 
8533
- for (var _i31 = 0, _Object$entries2 = Object.entries(props); _i31 < _Object$entries2.length; _i31++) {
8534
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i31], 2),
8759
+ for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
8760
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
8535
8761
  key = _Object$entries2$_i[0],
8536
8762
  value = _Object$entries2$_i[1];
8537
8763
 
@@ -8863,7 +9089,7 @@ var LWC = (function (exports) {
8863
9089
  });
8864
9090
  freeze(LightningElement);
8865
9091
  seal(LightningElement.prototype);
8866
- /* version: 2.14.2 */
9092
+ /* version: 2.17.0 */
8867
9093
 
8868
9094
  exports.LightningElement = LightningElement;
8869
9095
  exports.__unstable__ProfilerControl = profilerControl;
@@ -8877,6 +9103,8 @@ var LWC = (function (exports) {
8877
9103
  exports.hydrateComponent = hydrateComponent;
8878
9104
  exports.isComponentConstructor = isComponentConstructor;
8879
9105
  exports.isNodeFromTemplate = isNodeShadowed;
9106
+ exports.parseFragment = parseFragment;
9107
+ exports.parseSVGFragment = parseSVGFragment;
8880
9108
  exports.readonly = readonly;
8881
9109
  exports.register = register;
8882
9110
  exports.registerComponent = registerComponent;