lwc 2.21.0 → 2.23.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 +234 -236
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +234 -236
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +221 -224
  5. package/dist/engine-dom/iife/es5/engine-dom.js +282 -265
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +257 -237
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +234 -236
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +221 -224
  11. package/dist/engine-dom/umd/es5/engine-dom.js +282 -265
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +257 -237
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +138 -445
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  16. package/dist/engine-server/esm/es2017/engine-server.js +138 -445
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +13 -10
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +13 -10
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -2
  20. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +13 -10
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +15 -14
  22. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -2
  23. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +15 -14
  24. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +13 -10
  25. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  26. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +13 -10
  27. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +15 -14
  28. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -2
  29. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +15 -14
  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
@@ -349,7 +349,7 @@
349
349
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
350
350
  return attributeName;
351
351
  }
352
- /** version: 2.21.0 */
352
+ /** version: 2.23.0 */
353
353
 
354
354
  /*
355
355
  * Copyright (c) 2018, salesforce.com, inc.
@@ -737,20 +737,24 @@
737
737
 
738
738
  return ReactiveObserver;
739
739
  }();
740
- /*
741
- * Copyright (c) 2018, salesforce.com, inc.
742
- * All rights reserved.
743
- * SPDX-License-Identifier: MIT
744
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
745
- */
746
-
747
740
 
748
741
  function componentValueMutated(vm, key) {
749
- valueMutated(vm.component, key);
742
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
743
+ {
744
+ valueMutated(vm.component, key);
745
+ }
750
746
  }
751
747
 
752
748
  function componentValueObserved(vm, key) {
753
- valueObserved(vm.component, key);
749
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
750
+ {
751
+ valueObserved(vm.component, key);
752
+ }
753
+ }
754
+
755
+ function createReactiveObserver(callback) {
756
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
757
+ return new ReactiveObserver(callback);
754
758
  }
755
759
  /*
756
760
  * Copyright (c) 2018, salesforce.com, inc.
@@ -1015,6 +1019,15 @@
1015
1019
  HTMLElementOriginalDescriptors[propName] = descriptor;
1016
1020
  }
1017
1021
  });
1022
+
1023
+ function updateComponentValue(vm, key, newValue) {
1024
+ var cmpFields = vm.cmpFields;
1025
+
1026
+ if (newValue !== cmpFields[key]) {
1027
+ cmpFields[key] = newValue;
1028
+ componentValueMutated(vm, key);
1029
+ }
1030
+ }
1018
1031
  /**
1019
1032
  * Copyright (C) 2017 salesforce.com, inc.
1020
1033
  */
@@ -1675,8 +1688,28 @@
1675
1688
  */
1676
1689
 
1677
1690
  function unwrap(value) {
1691
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
1678
1692
  return reactiveMembrane.unwrapProxy(value);
1679
1693
  }
1694
+
1695
+ function getReadOnlyProxy(value) {
1696
+ // We must return a frozen wrapper around the value, so that child components cannot mutate properties passed to
1697
+ // them from their parents. This applies to both the client and server.
1698
+ return reactiveMembrane.getReadOnlyProxy(value);
1699
+ }
1700
+
1701
+ function getReactiveProxy(value) {
1702
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
1703
+ return reactiveMembrane.getProxy(value);
1704
+ } // Making the component instance a live value when using Locker to support expandos.
1705
+
1706
+
1707
+ function markLockerLiveObject(obj) {
1708
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
1709
+ {
1710
+ obj[lockerLivePropertyKey] = undefined;
1711
+ }
1712
+ }
1680
1713
  /*
1681
1714
  * Copyright (c) 2018, salesforce.com, inc.
1682
1715
  * All rights reserved.
@@ -1725,11 +1758,7 @@
1725
1758
  set: function set(newValue) {
1726
1759
  var vm = getAssociatedVM(this);
1727
1760
 
1728
- if (newValue !== vm.cmpProps[propName]) {
1729
- vm.cmpProps[propName] = newValue;
1730
- componentValueMutated(vm, propName);
1731
- }
1732
-
1761
+ updateComponentValue(vm, propName, newValue);
1733
1762
  return _set.call(vm.elm, newValue);
1734
1763
  }
1735
1764
  };
@@ -1767,10 +1796,9 @@
1767
1796
  vm.callHook = _callHook;
1768
1797
  vm.setHook = _setHook;
1769
1798
  vm.getHook = _getHook;
1770
- } // Making the component instance a live value when using Locker to support expandos.
1771
-
1799
+ }
1772
1800
 
1773
- this[lockerLivePropertyKey] = undefined; // Linking elm, shadow root and component with the VM.
1801
+ markLockerLiveObject(this); // Linking elm, shadow root and component with the VM.
1774
1802
 
1775
1803
  associateVM(component, vm);
1776
1804
  associateVM(elm, vm);
@@ -2018,47 +2046,7 @@
2018
2046
  },
2019
2047
  set: function set(newValue) {
2020
2048
  var vm = getAssociatedVM(this);
2021
-
2022
- if (newValue !== vm.cmpFields[key]) {
2023
- vm.cmpFields[key] = newValue;
2024
- componentValueMutated(vm, key);
2025
- }
2026
- },
2027
- enumerable: true,
2028
- configurable: true
2029
- };
2030
- }
2031
- /*
2032
- * Copyright (c) 2018, salesforce.com, inc.
2033
- * All rights reserved.
2034
- * SPDX-License-Identifier: MIT
2035
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
2036
- */
2037
-
2038
-
2039
- function api$1() {
2040
-
2041
- throw new Error();
2042
- }
2043
-
2044
- function createPublicPropertyDescriptor(key) {
2045
- return {
2046
- get: function get() {
2047
- var vm = getAssociatedVM(this);
2048
-
2049
- if (isBeingConstructed(vm)) {
2050
-
2051
- return;
2052
- }
2053
-
2054
- componentValueObserved(vm, key);
2055
- return vm.cmpProps[key];
2056
- },
2057
- set: function set(newValue) {
2058
- var vm = getAssociatedVM(this);
2059
-
2060
- vm.cmpProps[key] = newValue;
2061
- componentValueMutated(vm, key);
2049
+ updateComponentValue(vm, key, newValue);
2062
2050
  },
2063
2051
  enumerable: true,
2064
2052
  configurable: true
@@ -2122,6 +2110,47 @@
2122
2110
  return AccessorReactiveObserver;
2123
2111
  }(ReactiveObserver);
2124
2112
 
2113
+ function createAccessorReactiveObserver(vm, set) {
2114
+ // On the server side, we don't need mutation tracking. Skipping it improves performance.
2115
+ return new AccessorReactiveObserver(vm, set);
2116
+ }
2117
+ /*
2118
+ * Copyright (c) 2018, salesforce.com, inc.
2119
+ * All rights reserved.
2120
+ * SPDX-License-Identifier: MIT
2121
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
2122
+ */
2123
+
2124
+
2125
+ function api$1() {
2126
+
2127
+ throw new Error();
2128
+ }
2129
+
2130
+ function createPublicPropertyDescriptor(key) {
2131
+ return {
2132
+ get: function get() {
2133
+ var vm = getAssociatedVM(this);
2134
+
2135
+ if (isBeingConstructed(vm)) {
2136
+
2137
+ return;
2138
+ }
2139
+
2140
+ componentValueObserved(vm, key);
2141
+ return vm.cmpProps[key];
2142
+ },
2143
+ set: function set(newValue) {
2144
+ var vm = getAssociatedVM(this);
2145
+
2146
+ vm.cmpProps[key] = newValue;
2147
+ componentValueMutated(vm, key);
2148
+ },
2149
+ enumerable: true,
2150
+ configurable: true
2151
+ };
2152
+ }
2153
+
2125
2154
  function createPublicAccessorDescriptor(key, descriptor) {
2126
2155
  var _get3 = descriptor.get,
2127
2156
  _set2 = descriptor.set,
@@ -2148,7 +2177,7 @@
2148
2177
  var ro = vm.oar[key];
2149
2178
 
2150
2179
  if (isUndefined$1(ro)) {
2151
- ro = vm.oar[key] = new AccessorReactiveObserver(vm, _set2);
2180
+ ro = vm.oar[key] = createAccessorReactiveObserver(vm, _set2);
2152
2181
  } // every time we invoke this setter from outside (through this wrapper setter)
2153
2182
  // we should reset the value and then debounce just in case there is a pending
2154
2183
  // invocation the next tick that is not longer relevant since the value is changing
@@ -2178,7 +2207,7 @@
2178
2207
 
2179
2208
  function track(target) {
2180
2209
  if (arguments.length === 1) {
2181
- return reactiveMembrane.getProxy(target);
2210
+ return getReactiveProxy(target);
2182
2211
  }
2183
2212
 
2184
2213
  throw new Error();
@@ -2194,12 +2223,8 @@
2194
2223
  set: function set(newValue) {
2195
2224
  var vm = getAssociatedVM(this);
2196
2225
 
2197
- var reactiveOrAnyValue = reactiveMembrane.getProxy(newValue);
2198
-
2199
- if (reactiveOrAnyValue !== vm.cmpFields[key]) {
2200
- vm.cmpFields[key] = reactiveOrAnyValue;
2201
- componentValueMutated(vm, key);
2202
- }
2226
+ var reactiveOrAnyValue = getReactiveProxy(newValue);
2227
+ updateComponentValue(vm, key, reactiveOrAnyValue);
2203
2228
  },
2204
2229
  enumerable: true,
2205
2230
  configurable: true
@@ -2240,10 +2265,7 @@
2240
2265
  * system to be backward compatible.
2241
2266
  */
2242
2267
 
2243
- if (value !== vm.cmpFields[key]) {
2244
- vm.cmpFields[key] = value;
2245
- componentValueMutated(vm, key);
2246
- }
2268
+ updateComponentValue(vm, key, value);
2247
2269
  },
2248
2270
  enumerable: true,
2249
2271
  configurable: true
@@ -2502,7 +2524,7 @@
2502
2524
  fn = cachedSetterByKey[key] = function (newValue) {
2503
2525
  var vm = getAssociatedVM(this);
2504
2526
  var setHook = vm.setHook;
2505
- newValue = reactiveMembrane.getReadOnlyProxy(newValue);
2527
+ newValue = getReadOnlyProxy(newValue);
2506
2528
  setHook(vm.component, key, newValue);
2507
2529
  };
2508
2530
  }
@@ -3109,9 +3131,7 @@
3109
3131
  function createStylesheet(vm, stylesheets) {
3110
3132
  var renderMode = vm.renderMode,
3111
3133
  shadowMode = vm.shadowMode,
3112
- _vm$renderer2 = vm.renderer,
3113
- ssr = _vm$renderer2.ssr,
3114
- insertStylesheet = _vm$renderer2.insertStylesheet;
3134
+ insertStylesheet = vm.renderer.insertStylesheet;
3115
3135
 
3116
3136
  if (renderMode === 1
3117
3137
  /* RenderMode.Shadow */
@@ -3121,7 +3141,7 @@
3121
3141
  for (var _i12 = 0; _i12 < stylesheets.length; _i12++) {
3122
3142
  insertStylesheet(stylesheets[_i12]);
3123
3143
  }
3124
- } else if (ssr || vm.hydrated) {
3144
+ } else if (vm.hydrated) {
3125
3145
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
3126
3146
  // This works in the client, because the stylesheets are created, and cached in the VM
3127
3147
  // the first time the VM renders.
@@ -3502,7 +3522,7 @@
3502
3522
  }
3503
3523
  }
3504
3524
 
3505
- function patch(n1, n2, renderer) {
3525
+ function patch(n1, n2, parent, renderer) {
3506
3526
  var _a, _b;
3507
3527
 
3508
3528
  if (n1 === n2) {
@@ -3539,7 +3559,7 @@
3539
3559
  case 3
3540
3560
  /* VNodeType.CustomElement */
3541
3561
  :
3542
- patchCustomElement(n1, n2, (_b = n2.data.renderer) !== null && _b !== void 0 ? _b : renderer);
3562
+ patchCustomElement(n1, n2, parent, (_b = n2.data.renderer) !== null && _b !== void 0 ? _b : renderer);
3543
3563
  break;
3544
3564
  }
3545
3565
  }
@@ -3624,10 +3644,10 @@
3624
3644
  svg = vnode.data.svg;
3625
3645
  var createElement = renderer.createElement;
3626
3646
  var namespace = isTrue(svg) ? SVG_NAMESPACE : undefined;
3627
- var elm = createElement(sel, namespace);
3647
+ var elm = vnode.elm = createElement(sel, namespace);
3628
3648
  linkNodeToShadow(elm, owner, renderer);
3629
- fallbackElmHook(elm, vnode, renderer);
3630
- vnode.elm = elm;
3649
+ applyStyleScoping(elm, owner, renderer);
3650
+ applyDomManual(elm, vnode);
3631
3651
  patchElementPropsAndAttrs$1(null, vnode, renderer);
3632
3652
  insertNode(elm, parent, anchor, renderer);
3633
3653
  mountVNodes(vnode.children, elm, renderer, null);
@@ -3644,7 +3664,7 @@
3644
3664
  var cloneNode = renderer.cloneNode,
3645
3665
  isSyntheticShadowDefined = renderer.isSyntheticShadowDefined;
3646
3666
  var elm = vnode.elm = cloneNode(vnode.fragment, true);
3647
- linkNodeToShadow(elm, owner, renderer); // Marks this node as Static to propagate the shadow resolver. must happen after elm is assigned to the proper shadow
3667
+ linkNodeToShadow(elm, owner, renderer);
3648
3668
 
3649
3669
  var renderMode = owner.renderMode,
3650
3670
  shadowMode = owner.shadowMode;
@@ -3678,9 +3698,10 @@
3678
3698
  // the custom element from the registry is expecting an upgrade callback
3679
3699
  vm = createViewModelHook(elm, vnode, renderer);
3680
3700
  });
3681
- linkNodeToShadow(elm, owner, renderer);
3682
3701
  vnode.elm = elm;
3683
3702
  vnode.vm = vm;
3703
+ linkNodeToShadow(elm, owner, renderer);
3704
+ applyStyleScoping(elm, owner, renderer);
3684
3705
 
3685
3706
  if (vm) {
3686
3707
  allocateChildren(vnode, vm);
@@ -3703,25 +3724,34 @@
3703
3724
  }
3704
3725
  }
3705
3726
 
3706
- function patchCustomElement(n1, n2, renderer) {
3707
- var elm = n2.elm = n1.elm;
3708
- var vm = n2.vm = n1.vm;
3709
- patchElementPropsAndAttrs$1(n1, n2, renderer);
3727
+ function patchCustomElement(n1, n2, parent, renderer) {
3728
+ if (n1.ctor !== n2.ctor) {
3729
+ // If the constructor, unmount the current component and mount a new one using the new
3730
+ // constructor.
3731
+ var anchor = renderer.nextSibling(n1.elm);
3732
+ unmount(n1, parent, renderer, true);
3733
+ mountCustomElement(n2, parent, anchor, renderer);
3734
+ } else {
3735
+ // Otherwise patch the existing component with new props/attrs/etc.
3736
+ var elm = n2.elm = n1.elm;
3737
+ var vm = n2.vm = n1.vm;
3738
+ patchElementPropsAndAttrs$1(n1, n2, renderer);
3710
3739
 
3711
- if (!isUndefined$1(vm)) {
3712
- // in fallback mode, the allocation will always set children to
3713
- // empty and delegate the real allocation to the slot elements
3714
- allocateChildren(n2, vm);
3715
- } // in fallback mode, the children will be always empty, so, nothing
3716
- // will happen, but in native, it does allocate the light dom
3740
+ if (!isUndefined$1(vm)) {
3741
+ // in fallback mode, the allocation will always set children to
3742
+ // empty and delegate the real allocation to the slot elements
3743
+ allocateChildren(n2, vm);
3744
+ } // in fallback mode, the children will be always empty, so, nothing
3745
+ // will happen, but in native, it does allocate the light dom
3717
3746
 
3718
3747
 
3719
- patchChildren(n1.children, n2.children, elm, renderer);
3748
+ patchChildren(n1.children, n2.children, elm, renderer);
3720
3749
 
3721
- if (!isUndefined$1(vm)) {
3722
- // this will probably update the shadowRoot, but only if the vm is in a dirty state
3723
- // this is important to preserve the top to bottom synchronous rendering phase.
3724
- rerenderVM(vm);
3750
+ if (!isUndefined$1(vm)) {
3751
+ // this will probably update the shadowRoot, but only if the vm is in a dirty state
3752
+ // this is important to preserve the top to bottom synchronous rendering phase.
3753
+ rerenderVM(vm);
3754
+ }
3725
3755
  }
3726
3756
  }
3727
3757
 
@@ -3797,26 +3827,6 @@
3797
3827
  return vnode != null;
3798
3828
  }
3799
3829
 
3800
- function observeElementChildNodes(elm) {
3801
- elm.$domManual$ = true;
3802
- }
3803
-
3804
- function setElementShadowToken(elm, token) {
3805
- elm.$shadowToken$ = token;
3806
- } // Set the scope token class for *.scoped.css styles
3807
-
3808
-
3809
- function setScopeTokenClassIfNecessary(elm, owner, renderer) {
3810
- var token = getScopeTokenClass(owner);
3811
-
3812
- if (!isNull(token)) {
3813
- var _getClassList = renderer.getClassList; // TODO [#2762]: this dot notation with add is probably problematic
3814
- // probably we should have a renderer api for just the add operation
3815
-
3816
- _getClassList(elm).add(token);
3817
- }
3818
- }
3819
-
3820
3830
  function linkNodeToShadow(elm, owner, renderer) {
3821
3831
  var renderRoot = owner.renderRoot,
3822
3832
  renderMode = owner.renderMode,
@@ -3867,28 +3877,39 @@
3867
3877
  patchProps(oldVnode, vnode, renderer);
3868
3878
  }
3869
3879
 
3870
- function fallbackElmHook(elm, vnode, renderer) {
3871
- var owner = vnode.owner;
3872
- setScopeTokenClassIfNecessary(elm, owner, renderer);
3880
+ function applyStyleScoping(elm, owner, renderer) {
3881
+ // Set the class name for `*.scoped.css` style scoping.
3882
+ var scopeToken = getScopeTokenClass(owner);
3883
+
3884
+ if (!isNull(scopeToken)) {
3885
+ var _getClassList = renderer.getClassList; // TODO [#2762]: this dot notation with add is probably problematic
3886
+ // probably we should have a renderer api for just the add operation
3887
+
3888
+ _getClassList(elm).add(scopeToken);
3889
+ } // Set property element for synthetic shadow DOM style scoping.
3890
+
3891
+
3892
+ var syntheticToken = owner.context.stylesheetToken;
3873
3893
 
3874
3894
  if (owner.shadowMode === 1
3875
3895
  /* ShadowMode.Synthetic */
3876
- ) {
3877
- var context = vnode.data.context;
3878
- var stylesheetToken = owner.context.stylesheetToken;
3896
+ && !isUndefined$1(syntheticToken)) {
3897
+ elm.$shadowToken$ = syntheticToken;
3898
+ }
3899
+ }
3879
3900
 
3880
- if (!isUndefined$1(context) && !isUndefined$1(context.lwc) && context.lwc.dom === "manual"
3881
- /* LwcDomMode.Manual */
3882
- ) {
3883
- // this element will now accept any manual content inserted into it
3884
- observeElementChildNodes(elm);
3885
- }
3901
+ function applyDomManual(elm, vnode) {
3902
+ var _a;
3886
3903
 
3887
- if (!isUndefined$1(stylesheetToken)) {
3888
- // when running in synthetic shadow mode, we need to set the shadowToken value
3889
- // into each element from the template, so they can be styled accordingly.
3890
- setElementShadowToken(elm, stylesheetToken);
3891
- }
3904
+ var owner = vnode.owner,
3905
+ context = vnode.data.context;
3906
+
3907
+ if (owner.shadowMode === 1
3908
+ /* ShadowMode.Synthetic */
3909
+ && ((_a = context === null || context === void 0 ? void 0 : context.lwc) === null || _a === void 0 ? void 0 : _a.dom) === "manual"
3910
+ /* LwcDomMode.Manual */
3911
+ ) {
3912
+ elm.$domManual$ = true;
3892
3913
  }
3893
3914
  }
3894
3915
 
@@ -3935,19 +3956,6 @@
3935
3956
  mode = vnode.mode,
3936
3957
  ctor = vnode.ctor,
3937
3958
  owner = vnode.owner;
3938
- setScopeTokenClassIfNecessary(elm, owner, renderer);
3939
-
3940
- if (owner.shadowMode === 1
3941
- /* ShadowMode.Synthetic */
3942
- ) {
3943
- var stylesheetToken = owner.context.stylesheetToken; // when running in synthetic shadow mode, we need to set the shadowToken value
3944
- // into each element from the template, so they can be styled accordingly.
3945
-
3946
- if (!isUndefined$1(stylesheetToken)) {
3947
- setElementShadowToken(elm, stylesheetToken);
3948
- }
3949
- }
3950
-
3951
3959
  vm = createVM(elm, ctor, renderer, {
3952
3960
  mode: mode,
3953
3961
  owner: owner,
@@ -4067,22 +4075,22 @@
4067
4075
  } else if (!isVNode(newEndVnode)) {
4068
4076
  newEndVnode = newCh[--newEndIdx];
4069
4077
  } else if (isSameVnode(oldStartVnode, newStartVnode)) {
4070
- patch(oldStartVnode, newStartVnode, renderer);
4078
+ patch(oldStartVnode, newStartVnode, parent, renderer);
4071
4079
  oldStartVnode = oldCh[++oldStartIdx];
4072
4080
  newStartVnode = newCh[++newStartIdx];
4073
4081
  } else if (isSameVnode(oldEndVnode, newEndVnode)) {
4074
- patch(oldEndVnode, newEndVnode, renderer);
4082
+ patch(oldEndVnode, newEndVnode, parent, renderer);
4075
4083
  oldEndVnode = oldCh[--oldEndIdx];
4076
4084
  newEndVnode = newCh[--newEndIdx];
4077
4085
  } else if (isSameVnode(oldStartVnode, newEndVnode)) {
4078
4086
  // Vnode moved right
4079
- patch(oldStartVnode, newEndVnode, renderer);
4087
+ patch(oldStartVnode, newEndVnode, parent, renderer);
4080
4088
  insertNode(oldStartVnode.elm, parent, renderer.nextSibling(oldEndVnode.elm), renderer);
4081
4089
  oldStartVnode = oldCh[++oldStartIdx];
4082
4090
  newEndVnode = newCh[--newEndIdx];
4083
4091
  } else if (isSameVnode(oldEndVnode, newStartVnode)) {
4084
4092
  // Vnode moved left
4085
- patch(oldEndVnode, newStartVnode, renderer);
4093
+ patch(oldEndVnode, newStartVnode, parent, renderer);
4086
4094
  insertNode(newStartVnode.elm, parent, oldStartVnode.elm, renderer);
4087
4095
  oldEndVnode = oldCh[--oldEndIdx];
4088
4096
  newStartVnode = newCh[++newStartIdx];
@@ -4105,7 +4113,7 @@
4105
4113
  // New element
4106
4114
  mount(newStartVnode, parent, renderer, oldStartVnode.elm);
4107
4115
  } else {
4108
- patch(elmToMove, newStartVnode, renderer); // Delete the old child, but copy the array since it is read-only.
4116
+ patch(elmToMove, newStartVnode, parent, renderer); // Delete the old child, but copy the array since it is read-only.
4109
4117
  // The `oldCh` will be GC'ed after `updateDynamicChildren` is complete,
4110
4118
  // so we only care about the `oldCh` object inside this function.
4111
4119
  // To avoid cloning over and over again, we check `clonedOldCh`
@@ -4175,7 +4183,7 @@
4175
4183
  if (isVNode(n1)) {
4176
4184
  if (isVNode(n2)) {
4177
4185
  // both vnodes are equivalent, and we just need to patch them
4178
- patch(n1, n2, renderer);
4186
+ patch(n1, n2, parent, renderer);
4179
4187
  anchor = n2.elm;
4180
4188
  } else {
4181
4189
  // removing the old vnode since the new one is null
@@ -4476,19 +4484,11 @@
4476
4484
 
4477
4485
  return url;
4478
4486
  }
4479
- /**
4480
- * Map to store an index value assigned to any dynamic component reference ingested
4481
- * by dc() api. This allows us to generate a unique unique per template per dynamic
4482
- * component reference to avoid diffing algo mismatches.
4483
- */
4484
-
4485
-
4486
- var DynamicImportedComponentMap = new Map();
4487
- var dynamicImportedComponentCounter = 0;
4488
4487
  /**
4489
4488
  * create a dynamic component via `<x-foo lwc:dynamic={Ctor}>`
4490
4489
  */
4491
4490
 
4491
+
4492
4492
  function dc(sel, Ctor, data) {
4493
4493
  var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : EmptyArray;
4494
4494
 
@@ -4501,22 +4501,7 @@
4501
4501
  throw new Error("Invalid LWC Constructor ".concat(toString$1(Ctor), " for custom element <").concat(sel, ">."));
4502
4502
  }
4503
4503
 
4504
- var idx = DynamicImportedComponentMap.get(Ctor);
4505
-
4506
- if (isUndefined$1(idx)) {
4507
- idx = dynamicImportedComponentCounter++;
4508
- DynamicImportedComponentMap.set(Ctor, idx);
4509
- } // the new vnode key is a mix of idx and compiler key, this is required by the diffing algo
4510
- // to identify different constructors as vnodes with different keys to avoid reusing the
4511
- // element used for previous constructors.
4512
- // Shallow clone is necessary here becuase VElementData may be shared across VNodes due to
4513
- // hoisting optimization.
4514
-
4515
-
4516
- var newData = Object.assign(Object.assign({}, data), {
4517
- key: "dc:".concat(idx, ":").concat(data.key)
4518
- });
4519
- return c(sel, Ctor, newData, children);
4504
+ return c(sel, Ctor, data, children);
4520
4505
  }
4521
4506
  /**
4522
4507
  * slow children collection marking mechanism. this API allows the compiler to signal
@@ -4977,7 +4962,7 @@
4977
4962
  }
4978
4963
 
4979
4964
  function getTemplateReactiveObserver(vm) {
4980
- return new ReactiveObserver(function () {
4965
+ return createReactiveObserver(function () {
4981
4966
  var isDirty = vm.isDirty;
4982
4967
 
4983
4968
  if (isFalse(isDirty)) {
@@ -5356,13 +5341,7 @@
5356
5341
  }
5357
5342
 
5358
5343
  function runRenderedCallback(vm) {
5359
- var renderedCallback = vm.def.renderedCallback,
5360
- ssr = vm.renderer.ssr;
5361
-
5362
- if (isTrue(ssr)) {
5363
- return;
5364
- }
5365
-
5344
+ var renderedCallback = vm.def.renderedCallback;
5366
5345
  var rendered = Services.rendered;
5367
5346
 
5368
5347
  if (rendered) {
@@ -5585,9 +5564,7 @@
5585
5564
  }
5586
5565
 
5587
5566
  function scheduleRehydration(vm) {
5588
- var ssr = vm.renderer.ssr;
5589
-
5590
- if (isTrue(ssr) || isTrue(vm.isScheduled)) {
5567
+ if (isTrue(vm.isScheduled)) {
5591
5568
  return;
5592
5569
  }
5593
5570
 
@@ -5689,13 +5666,8 @@
5689
5666
  }( /*#__PURE__*/_wrapNativeSuper(CustomEvent));
5690
5667
 
5691
5668
  function createFieldDataCallback(vm, name) {
5692
- var cmpFields = vm.cmpFields;
5693
5669
  return function (value) {
5694
- if (value !== vm.cmpFields[name]) {
5695
- // storing the value in the underlying storage
5696
- cmpFields[name] = value;
5697
- componentValueMutated(vm, name);
5698
- }
5670
+ updateComponentValue(vm, name, value);
5699
5671
  };
5700
5672
  }
5701
5673
 
@@ -5712,7 +5684,7 @@
5712
5684
  function createConfigWatcher(component, configCallback, callbackWhenConfigIsReady) {
5713
5685
  var hasPendingConfig = false; // creating the reactive observer for reactive params when needed
5714
5686
 
5715
- var ro = new ReactiveObserver(function () {
5687
+ var ro = createReactiveObserver(function () {
5716
5688
  if (hasPendingConfig === false) {
5717
5689
  hasPendingConfig = true; // collect new config in the micro-task
5718
5690
 
@@ -6003,7 +5975,7 @@
6003
5975
 
6004
5976
  function readonly(obj) {
6005
5977
 
6006
- return reactiveMembrane.getReadOnlyProxy(obj);
5978
+ return getReadOnlyProxy(obj);
6007
5979
  }
6008
5980
  /*
6009
5981
  * Copyright (c) 2022, salesforce.com, inc.
@@ -6485,7 +6457,7 @@
6485
6457
 
6486
6458
  return ctor;
6487
6459
  }
6488
- /* version: 2.21.0 */
6460
+ /* version: 2.23.0 */
6489
6461
 
6490
6462
  /*
6491
6463
  * Copyright (c) 2018, salesforce.com, inc.
@@ -6644,6 +6616,85 @@
6644
6616
  */
6645
6617
 
6646
6618
 
6619
+ var SUPPORTS_TEMPLATE = typeof HTMLTemplateElement === 'function';
6620
+ var createFragment;
6621
+
6622
+ if (SUPPORTS_TEMPLATE) {
6623
+ // Parse the fragment HTML string into DOM
6624
+ createFragment = function createFragment(html) {
6625
+ var template = document.createElement('template');
6626
+ template.innerHTML = html;
6627
+ return template.content.firstChild;
6628
+ };
6629
+ } else {
6630
+ // In browsers that don't support <template> (e.g. IE11), we need to be careful to wrap elements like
6631
+ // <td> in the proper container elements (e.g. <tbody>), because otherwise they will be parsed as null.
6632
+ // Via https://github.com/webcomponents/polyfills/blob/ee1db33/packages/template/template.js#L273-L280
6633
+ // With other elements added from:
6634
+ // https://github.com/sindresorhus/html-tags/blob/95dcdd5/index.js
6635
+ // Using the test:
6636
+ // document.createRange().createContextualFragment(`<${tag}></${tag}>`).firstChild === null
6637
+ // And omitting <html>, <head>, and <body> as these are not practical in an LWC component.
6638
+ var topLevelWrappingMap = {
6639
+ caption: ['table'],
6640
+ col: ['colgroup', 'table'],
6641
+ colgroup: ['table'],
6642
+ option: ['select'],
6643
+ tbody: ['table'],
6644
+ td: ['tr', 'tbody', 'table'],
6645
+ th: ['tr', 'tbody', 'table'],
6646
+ thead: ['table'],
6647
+ tfoot: ['table'],
6648
+ tr: ['tbody', 'table']
6649
+ }; // Via https://github.com/webcomponents/polyfills/blob/ee1db33/packages/template/template.js#L282-L288
6650
+
6651
+ var getTagName = function getTagName(text) {
6652
+ return (/<([a-z][^/\0>\x20\t\r\n\f]+)/i.exec(text) || ['', ''])[1].toLowerCase();
6653
+ }; // Via https://github.com/webcomponents/polyfills/blob/ee1db33/packages/template/template.js#L295-L320
6654
+
6655
+
6656
+ createFragment = function createFragment(html) {
6657
+ var wrapperTags = topLevelWrappingMap[getTagName(html)];
6658
+
6659
+ if (!isUndefined$1(wrapperTags)) {
6660
+ var _iterator5 = _createForOfIteratorHelper(wrapperTags),
6661
+ _step5;
6662
+
6663
+ try {
6664
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
6665
+ var wrapperTag = _step5.value;
6666
+ html = "<".concat(wrapperTag, ">").concat(html, "</").concat(wrapperTag, ">");
6667
+ }
6668
+ } catch (err) {
6669
+ _iterator5.e(err);
6670
+ } finally {
6671
+ _iterator5.f();
6672
+ }
6673
+ } // For IE11, the document title must not be undefined, but it can be an empty string
6674
+ // https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createHTMLDocument#browser_compatibility
6675
+
6676
+
6677
+ var doc = document.implementation.createHTMLDocument('');
6678
+ doc.body.innerHTML = html;
6679
+ var content = doc.body;
6680
+
6681
+ if (!isUndefined$1(wrapperTags)) {
6682
+ for (var _i32 = 0; _i32 < wrapperTags.length; _i32++) {
6683
+ content = content.firstChild;
6684
+ }
6685
+ }
6686
+
6687
+ return content.firstChild;
6688
+ };
6689
+ }
6690
+ /*
6691
+ * Copyright (c) 2018, salesforce.com, inc.
6692
+ * All rights reserved.
6693
+ * SPDX-License-Identifier: MIT
6694
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
6695
+ */
6696
+
6697
+
6647
6698
  var getCustomElement;
6648
6699
  var defineCustomElement;
6649
6700
  var HTMLElementConstructor;
@@ -6725,18 +6776,6 @@
6725
6776
  HTMLElementConstructor.prototype = HTMLElement.prototype;
6726
6777
  }
6727
6778
 
6728
- var hydrating = false;
6729
-
6730
- function setIsHydrating(value) {
6731
- hydrating = value;
6732
- }
6733
-
6734
- var ssr = false;
6735
-
6736
- function isHydrating() {
6737
- return hydrating;
6738
- }
6739
-
6740
6779
  var isNativeShadowDefined = _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED];
6741
6780
  var isSyntheticShadowDefined = hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN);
6742
6781
 
@@ -6744,10 +6783,6 @@
6744
6783
  return node.cloneNode(deep);
6745
6784
  }
6746
6785
 
6747
- function createFragment(html) {
6748
- return document.createRange().createContextualFragment(html).firstChild;
6749
- }
6750
-
6751
6786
  function createElement$1(tagName, namespace) {
6752
6787
  return isUndefined$1(namespace) ? document.createElement(tagName) : document.createElementNS(namespace, tagName);
6753
6788
  }
@@ -6773,15 +6808,11 @@
6773
6808
  }
6774
6809
 
6775
6810
  function attachShadow(element, options) {
6776
- // `hydrating` will be true in two cases:
6811
+ // `shadowRoot` will be non-null in two cases:
6777
6812
  // 1. upon initial load with an SSR-generated DOM, while in Shadow render mode
6778
6813
  // 2. when a webapp author places <c-app> in their static HTML and mounts their
6779
- // root component with customeElement.define('c-app', Ctor)
6780
- //
6781
- // The second case can be treated as a failed hydration with nominal impact
6782
- // to performance. However, because <c-app> won't have a <template shadowroot>
6783
- // declarative child, `element.shadowRoot` is `null`.
6784
- if (hydrating && element.shadowRoot) {
6814
+ // root component with customElement.define('c-app', Ctor)
6815
+ if (!isNull(element.shadowRoot)) {
6785
6816
  return element.shadowRoot;
6786
6817
  }
6787
6818
 
@@ -6893,11 +6924,9 @@
6893
6924
 
6894
6925
  var HTMLElementExported = HTMLElementConstructor;
6895
6926
  var renderer = {
6896
- ssr: ssr,
6897
6927
  isNativeShadowDefined: isNativeShadowDefined,
6898
6928
  isSyntheticShadowDefined: isSyntheticShadowDefined,
6899
6929
  HTMLElementExported: HTMLElementExported,
6900
- isHydrating: isHydrating,
6901
6930
  insert: insert,
6902
6931
  remove: remove,
6903
6932
  cloneNode: cloneNode,
@@ -6966,8 +6995,8 @@
6966
6995
  hydrated: true
6967
6996
  });
6968
6997
 
6969
- for (var _i32 = 0, _Object$entries2 = Object.entries(props); _i32 < _Object$entries2.length; _i32++) {
6970
- var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i32], 2),
6998
+ for (var _i33 = 0, _Object$entries2 = Object.entries(props); _i33 < _Object$entries2.length; _i33++) {
6999
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i33], 2),
6971
7000
  key = _Object$entries2$_i[0],
6972
7001
  value = _Object$entries2$_i[1];
6973
7002
 
@@ -6999,13 +7028,8 @@
6999
7028
  }
7000
7029
 
7001
7030
  try {
7002
- // Let the renderer know we are hydrating, so it does not replace the existing shadowRoot
7003
- // and uses the same algo to create the stylesheets as in SSR.
7004
- setIsHydrating(true);
7005
7031
  var vm = createVMWithProps(element, Ctor, props);
7006
- hydrateRoot(vm); // set it back since now we finished hydration.
7007
-
7008
- setIsHydrating(false);
7032
+ hydrateRoot(vm);
7009
7033
  } catch (e) {
7010
7034
  // Fallback: In case there's an error while hydrating, let's log the error, and replace the element content
7011
7035
  // with the client generated DOM.
@@ -7016,11 +7040,7 @@
7016
7040
  resetShadowRootAndLightDom(element, Ctor); // we need to recreate the vm with the hydration flag on, so it re-uses the existing shadowRoot.
7017
7041
 
7018
7042
  createVMWithProps(element, Ctor, props);
7019
- setIsHydrating(false);
7020
7043
  connectRootElement(element);
7021
- } finally {
7022
- // in case there's an error during recovery
7023
- setIsHydrating(false);
7024
7044
  }
7025
7045
  }
7026
7046
  /*
@@ -7292,7 +7312,7 @@
7292
7312
  });
7293
7313
  freeze(LightningElement);
7294
7314
  seal(LightningElement.prototype);
7295
- /* version: 2.21.0 */
7315
+ /* version: 2.23.0 */
7296
7316
 
7297
7317
  exports.LightningElement = LightningElement;
7298
7318
  exports.__unstable__ProfilerControl = profilerControl;