lwc 2.5.8 → 2.6.1

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 +161 -129
  2. package/dist/engine-dom/iife/es2017/engine-dom.js +161 -129
  3. package/dist/engine-dom/iife/es2017/engine-dom.min.js +2 -2
  4. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +144 -125
  5. package/dist/engine-dom/iife/es5/engine-dom.js +174 -138
  6. package/dist/engine-dom/iife/es5/engine-dom.min.js +2 -2
  7. package/dist/engine-dom/iife/es5/engine-dom_debug.js +159 -136
  8. package/dist/engine-dom/umd/es2017/engine-dom.js +161 -129
  9. package/dist/engine-dom/umd/es2017/engine-dom.min.js +2 -2
  10. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +144 -125
  11. package/dist/engine-dom/umd/es5/engine-dom.js +174 -138
  12. package/dist/engine-dom/umd/es5/engine-dom.min.js +2 -2
  13. package/dist/engine-dom/umd/es5/engine-dom_debug.js +159 -136
  14. package/dist/engine-server/commonjs/es2017/engine-server.js +161 -129
  15. package/dist/engine-server/commonjs/es2017/engine-server.min.js +2 -2
  16. package/dist/engine-server/esm/es2017/engine-server.js +161 -129
  17. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +23 -130
  18. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +23 -130
  19. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -2
  20. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +23 -130
  21. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +23 -124
  22. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -2
  23. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +23 -124
  24. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +23 -130
  25. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  26. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +23 -130
  27. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +23 -124
  28. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -2
  29. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +23 -124
  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 +8 -8
@@ -18,7 +18,7 @@
18
18
 
19
19
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
20
20
 
21
- function _get2(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get2 = Reflect.get; } else { _get2 = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get2(target, property, receiver || target); }
21
+ function _get2() { if (typeof Reflect !== "undefined" && Reflect.get) { _get2 = Reflect.get; } else { _get2 = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get2.apply(this, arguments); }
22
22
 
23
23
  function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf2(object); if (object === null) break; } return object; }
24
24
 
@@ -126,7 +126,7 @@
126
126
  ArrayFilter = _Array$prototype.filter,
127
127
  ArrayIndexOf = _Array$prototype.indexOf,
128
128
  ArrayJoin = _Array$prototype.join,
129
- ArrayMap$1 = _Array$prototype.map,
129
+ ArrayMap = _Array$prototype.map,
130
130
  ArrayPush$1 = _Array$prototype.push,
131
131
  ArraySlice = _Array$prototype.slice,
132
132
  ArraySplice = _Array$prototype.splice,
@@ -187,7 +187,7 @@
187
187
  // Array.prototype.toString directly will cause an error Iterate through
188
188
  // all the items and handle individually.
189
189
  if (isArray$1(obj)) {
190
- return ArrayJoin.call(ArrayMap$1.call(obj, toString$1), ',');
190
+ return ArrayJoin.call(ArrayMap.call(obj, toString$1), ',');
191
191
  }
192
192
 
193
193
  return obj.toString();
@@ -351,7 +351,7 @@
351
351
  CACHED_PROPERTY_ATTRIBUTE_MAPPING.set(propName, attributeName);
352
352
  return attributeName;
353
353
  }
354
- /** version: 2.5.8 */
354
+ /** version: 2.6.1 */
355
355
 
356
356
  /*
357
357
  * Copyright (c) 2018, salesforce.com, inc.
@@ -463,7 +463,6 @@
463
463
  ENABLE_NODE_LIST_PATCH: null,
464
464
  ENABLE_HTML_COLLECTIONS_PATCH: null,
465
465
  ENABLE_NODE_PATCH: null,
466
- ENABLE_NON_COMPOSED_EVENTS_LEAKAGE: null,
467
466
  ENABLE_MIXED_SHADOW_MODE: null,
468
467
  ENABLE_WIRE_SYNC_EMIT: null
469
468
  };
@@ -531,7 +530,7 @@
531
530
  setFeatureFlag(name, value);
532
531
  }
533
532
  }
534
- /** version: 2.5.8 */
533
+ /** version: 2.6.1 */
535
534
 
536
535
  /* proxy-compat-disable */
537
536
 
@@ -1915,7 +1914,8 @@
1915
1914
  */
1916
1915
 
1917
1916
  var isArray = Array.isArray;
1918
- var _getPrototypeOf = Object.getPrototypeOf,
1917
+ var ObjectDotPrototype = Object.prototype,
1918
+ _getPrototypeOf = Object.getPrototypeOf,
1919
1919
  ObjectCreate = Object.create,
1920
1920
  ObjectDefineProperty = Object.defineProperty,
1921
1921
  _isExtensible = Object.isExtensible,
@@ -1993,7 +1993,10 @@
1993
1993
  // but it will always be compatible with the previous descriptor
1994
1994
  // to preserve the object invariants, which makes these lines safe.
1995
1995
 
1996
- var originalDescriptor = _getOwnPropertyDescriptor(originalTarget, key);
1996
+ var originalDescriptor = _getOwnPropertyDescriptor(originalTarget, key); // TODO: it should be impossible for the originalDescriptor to ever be undefined, this `if` can be removed
1997
+
1998
+ /* istanbul ignore else */
1999
+
1997
2000
 
1998
2001
  if (!isUndefined(originalDescriptor)) {
1999
2002
  var wrappedDesc = this.wrapDescriptor(originalDescriptor);
@@ -2018,12 +2021,18 @@
2018
2021
 
2019
2022
  _preventExtensions(shadowTarget);
2020
2023
  } // Shared Traps
2024
+ // TODO: apply() is never called
2025
+
2026
+ /* istanbul ignore next */
2021
2027
 
2022
2028
  }, {
2023
2029
  key: "apply",
2024
2030
  value: function apply(shadowTarget, thisArg, argArray) {
2025
2031
  /* No op */
2026
- }
2032
+ } // TODO: construct() is never called
2033
+
2034
+ /* istanbul ignore next */
2035
+
2027
2036
  }, {
2028
2037
  key: "construct",
2029
2038
  value: function construct(shadowTarget, argArray, newTarget) {
@@ -2128,8 +2137,8 @@
2128
2137
  return BaseProxyHandler;
2129
2138
  }();
2130
2139
 
2131
- var getterMap = new WeakMap();
2132
- var setterMap = new WeakMap();
2140
+ var getterMap$1 = new WeakMap();
2141
+ var setterMap$1 = new WeakMap();
2133
2142
  var reverseGetterMap = new WeakMap();
2134
2143
  var reverseSetterMap = new WeakMap();
2135
2144
 
@@ -2152,7 +2161,7 @@
2152
2161
  }, {
2153
2162
  key: "wrapGetter",
2154
2163
  value: function wrapGetter(originalGet) {
2155
- var wrappedGetter = getterMap.get(originalGet);
2164
+ var wrappedGetter = getterMap$1.get(originalGet);
2156
2165
 
2157
2166
  if (!isUndefined(wrappedGetter)) {
2158
2167
  return wrappedGetter;
@@ -2165,14 +2174,14 @@
2165
2174
  return handler.wrapValue(originalGet.call(unwrap$1(this)));
2166
2175
  };
2167
2176
 
2168
- getterMap.set(originalGet, get);
2177
+ getterMap$1.set(originalGet, get);
2169
2178
  reverseGetterMap.set(get, originalGet);
2170
2179
  return get;
2171
2180
  }
2172
2181
  }, {
2173
2182
  key: "wrapSetter",
2174
2183
  value: function wrapSetter(originalSet) {
2175
- var wrappedSetter = setterMap.get(originalSet);
2184
+ var wrappedSetter = setterMap$1.get(originalSet);
2176
2185
 
2177
2186
  if (!isUndefined(wrappedSetter)) {
2178
2187
  return wrappedSetter;
@@ -2183,7 +2192,7 @@
2183
2192
  originalSet.call(unwrap$1(this), unwrap$1(v));
2184
2193
  };
2185
2194
 
2186
- setterMap.set(originalSet, set);
2195
+ setterMap$1.set(originalSet, set);
2187
2196
  reverseSetterMap.set(set, originalSet);
2188
2197
  return set;
2189
2198
  }
@@ -2224,7 +2233,7 @@
2224
2233
  return unwrap$1(redGet.call(handler.wrapValue(this)));
2225
2234
  };
2226
2235
 
2227
- getterMap.set(get, redGet);
2236
+ getterMap$1.set(get, redGet);
2228
2237
  reverseGetterMap.set(redGet, get);
2229
2238
  return get;
2230
2239
  }
@@ -2244,7 +2253,7 @@
2244
2253
  redSet.call(handler.wrapValue(this), handler.wrapValue(v));
2245
2254
  };
2246
2255
 
2247
- setterMap.set(set, redSet);
2256
+ setterMap$1.set(set, redSet);
2248
2257
  reverseSetterMap.set(redSet, set);
2249
2258
  return set;
2250
2259
  }
@@ -2280,6 +2289,7 @@
2280
2289
  }, {
2281
2290
  key: "setPrototypeOf",
2282
2291
  value: function setPrototypeOf(shadowTarget, prototype) {
2292
+ /* istanbul ignore else */
2283
2293
  if (process.env.NODE_ENV !== 'production') {
2284
2294
  throw new Error("Invalid setPrototypeOf invocation for reactive proxy ".concat(toString(this.originalTarget), ". Prototype of reactive objects cannot be changed."));
2285
2295
  }
@@ -2293,6 +2303,11 @@
2293
2303
  _preventExtensions(originalTarget); // if the originalTarget is a proxy itself, it might reject
2294
2304
  // the preventExtension call, in which case we should not attempt to lock down
2295
2305
  // the shadow target.
2306
+ // TODO: It should not actually be possible to reach this `if` statement.
2307
+ // If a proxy rejects extensions, then calling preventExtensions will throw an error:
2308
+ // https://codepen.io/nolanlawson-the-selector/pen/QWMOjbY
2309
+
2310
+ /* istanbul ignore if */
2296
2311
 
2297
2312
 
2298
2313
  if (_isExtensible(originalTarget)) {
@@ -2335,8 +2350,8 @@
2335
2350
  return ReactiveProxyHandler;
2336
2351
  }(BaseProxyHandler);
2337
2352
 
2338
- var getterMap$1 = new WeakMap();
2339
- var setterMap$1 = new WeakMap();
2353
+ var getterMap = new WeakMap();
2354
+ var setterMap = new WeakMap();
2340
2355
 
2341
2356
  var ReadOnlyHandler = /*#__PURE__*/function (_BaseProxyHandler2) {
2342
2357
  _inherits(ReadOnlyHandler, _BaseProxyHandler2);
@@ -2357,7 +2372,7 @@
2357
2372
  }, {
2358
2373
  key: "wrapGetter",
2359
2374
  value: function wrapGetter(originalGet) {
2360
- var wrappedGetter = getterMap$1.get(originalGet);
2375
+ var wrappedGetter = getterMap.get(originalGet);
2361
2376
 
2362
2377
  if (!isUndefined(wrappedGetter)) {
2363
2378
  return wrappedGetter;
@@ -2370,13 +2385,13 @@
2370
2385
  return handler.wrapValue(originalGet.call(unwrap$1(this)));
2371
2386
  };
2372
2387
 
2373
- getterMap$1.set(originalGet, get);
2388
+ getterMap.set(originalGet, get);
2374
2389
  return get;
2375
2390
  }
2376
2391
  }, {
2377
2392
  key: "wrapSetter",
2378
2393
  value: function wrapSetter(originalSet) {
2379
- var wrappedSetter = setterMap$1.get(originalSet);
2394
+ var wrappedSetter = setterMap.get(originalSet);
2380
2395
 
2381
2396
  if (!isUndefined(wrappedSetter)) {
2382
2397
  return wrappedSetter;
@@ -2385,38 +2400,47 @@
2385
2400
  var handler = this;
2386
2401
 
2387
2402
  var set = function set(v) {
2403
+ /* istanbul ignore else */
2388
2404
  if (process.env.NODE_ENV !== 'production') {
2389
2405
  var originalTarget = handler.originalTarget;
2390
2406
  throw new Error("Invalid mutation: Cannot invoke a setter on \"".concat(originalTarget, "\". \"").concat(originalTarget, "\" is read-only."));
2391
2407
  }
2392
2408
  };
2393
2409
 
2394
- setterMap$1.set(originalSet, set);
2410
+ setterMap.set(originalSet, set);
2395
2411
  return set;
2396
2412
  }
2397
2413
  }, {
2398
2414
  key: "set",
2399
2415
  value: function set(shadowTarget, key, value) {
2416
+ /* istanbul ignore else */
2400
2417
  if (process.env.NODE_ENV !== 'production') {
2401
2418
  var originalTarget = this.originalTarget;
2402
- throw new Error("Invalid mutation: Cannot set \"".concat(key.toString(), "\" on \"").concat(originalTarget, "\". \"").concat(originalTarget, "\" is read-only."));
2419
+ var msg = isArray(originalTarget) ? "Invalid mutation: Cannot mutate array at index ".concat(key.toString(), ". Array is read-only.") : "Invalid mutation: Cannot set \"".concat(key.toString(), "\" on \"").concat(originalTarget, "\". \"").concat(originalTarget, "\" is read-only.");
2420
+ throw new Error(msg);
2403
2421
  }
2422
+ /* istanbul ignore next */
2423
+
2404
2424
 
2405
2425
  return false;
2406
2426
  }
2407
2427
  }, {
2408
2428
  key: "deleteProperty",
2409
2429
  value: function deleteProperty(shadowTarget, key) {
2430
+ /* istanbul ignore else */
2410
2431
  if (process.env.NODE_ENV !== 'production') {
2411
2432
  var originalTarget = this.originalTarget;
2412
2433
  throw new Error("Invalid mutation: Cannot delete \"".concat(key.toString(), "\" on \"").concat(originalTarget, "\". \"").concat(originalTarget, "\" is read-only."));
2413
2434
  }
2435
+ /* istanbul ignore next */
2436
+
2414
2437
 
2415
2438
  return false;
2416
2439
  }
2417
2440
  }, {
2418
2441
  key: "setPrototypeOf",
2419
2442
  value: function setPrototypeOf(shadowTarget, prototype) {
2443
+ /* istanbul ignore else */
2420
2444
  if (process.env.NODE_ENV !== 'production') {
2421
2445
  var originalTarget = this.originalTarget;
2422
2446
  throw new Error("Invalid prototype mutation: Cannot set prototype on \"".concat(originalTarget, "\". \"").concat(originalTarget, "\" prototype is read-only."));
@@ -2425,20 +2449,26 @@
2425
2449
  }, {
2426
2450
  key: "preventExtensions",
2427
2451
  value: function preventExtensions(shadowTarget) {
2452
+ /* istanbul ignore else */
2428
2453
  if (process.env.NODE_ENV !== 'production') {
2429
2454
  var originalTarget = this.originalTarget;
2430
2455
  throw new Error("Invalid mutation: Cannot preventExtensions on ".concat(originalTarget, "\". \"").concat(originalTarget, " is read-only."));
2431
2456
  }
2457
+ /* istanbul ignore next */
2458
+
2432
2459
 
2433
2460
  return false;
2434
2461
  }
2435
2462
  }, {
2436
2463
  key: "defineProperty",
2437
2464
  value: function defineProperty(shadowTarget, key, descriptor) {
2465
+ /* istanbul ignore else */
2438
2466
  if (process.env.NODE_ENV !== 'production') {
2439
2467
  var originalTarget = this.originalTarget;
2440
2468
  throw new Error("Invalid mutation: Cannot defineProperty \"".concat(key.toString(), "\" on \"").concat(originalTarget, "\". \"").concat(originalTarget, "\" is read-only."));
2441
2469
  }
2470
+ /* istanbul ignore next */
2471
+
2442
2472
 
2443
2473
  return false;
2444
2474
  }
@@ -2498,6 +2528,8 @@
2498
2528
  }; // Inspired from paulmillr/es6-shim
2499
2529
  // https://github.com/paulmillr/es6-shim/blob/master/es6-shim.js#L176-L185
2500
2530
 
2531
+ /* istanbul ignore next */
2532
+
2501
2533
  function getGlobal() {
2502
2534
  // the only reliable means to get the global object is `Function('return this')()`
2503
2535
  // However, this causes CSP violations in Chrome apps.
@@ -2522,6 +2554,7 @@
2522
2554
  }
2523
2555
 
2524
2556
  function init() {
2557
+ /* istanbul ignore if */
2525
2558
  if (process.env.NODE_ENV === 'production') {
2526
2559
  // this method should never leak to prod
2527
2560
  throw new ReferenceError();
@@ -2536,13 +2569,13 @@
2536
2569
  ArrayPush.call(devtoolsFormatters, formatter);
2537
2570
  global.devtoolsFormatters = devtoolsFormatters;
2538
2571
  }
2572
+ /* istanbul ignore else */
2573
+
2539
2574
 
2540
2575
  if (process.env.NODE_ENV !== 'production') {
2541
2576
  init();
2542
2577
  }
2543
2578
 
2544
- var ObjectDotPrototype = Object.prototype;
2545
-
2546
2579
  function defaultValueIsObservable(value) {
2547
2580
  // intentionally checking for null
2548
2581
  if (value === null) {
@@ -2571,64 +2604,54 @@
2571
2604
  /* do nothing */
2572
2605
  };
2573
2606
 
2574
- var defaultValueDistortion = function defaultValueDistortion(value) {
2575
- return value;
2576
- };
2577
-
2578
2607
  function createShadowTarget(value) {
2579
2608
  return isArray(value) ? [] : {};
2580
2609
  }
2581
2610
 
2582
- var ReactiveMembrane = /*#__PURE__*/function () {
2583
- function ReactiveMembrane(options) {
2584
- _classCallCheck(this, ReactiveMembrane);
2611
+ var ObservableMembrane = /*#__PURE__*/function () {
2612
+ function ObservableMembrane() {
2613
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2585
2614
 
2586
- this.valueDistortion = defaultValueDistortion;
2587
- this.valueMutated = defaultValueMutated;
2588
- this.valueObserved = defaultValueObserved;
2589
- this.valueIsObservable = defaultValueIsObservable;
2590
- this.objectGraph = new WeakMap();
2615
+ _classCallCheck(this, ObservableMembrane);
2591
2616
 
2592
- if (!isUndefined(options)) {
2593
- var _valueDistortion = options.valueDistortion,
2594
- _valueMutated = options.valueMutated,
2595
- _valueObserved = options.valueObserved,
2596
- valueIsObservable = options.valueIsObservable,
2597
- tagPropertyKey = options.tagPropertyKey;
2598
- this.valueDistortion = isFunction(_valueDistortion) ? _valueDistortion : defaultValueDistortion;
2599
- this.valueMutated = isFunction(_valueMutated) ? _valueMutated : defaultValueMutated;
2600
- this.valueObserved = isFunction(_valueObserved) ? _valueObserved : defaultValueObserved;
2601
- this.valueIsObservable = isFunction(valueIsObservable) ? valueIsObservable : defaultValueIsObservable;
2602
- this.tagPropertyKey = tagPropertyKey;
2603
- }
2617
+ this.readOnlyObjectGraph = new WeakMap();
2618
+ this.reactiveObjectGraph = new WeakMap();
2619
+ var valueMutated = options.valueMutated,
2620
+ valueObserved = options.valueObserved,
2621
+ valueIsObservable = options.valueIsObservable,
2622
+ tagPropertyKey = options.tagPropertyKey;
2623
+ this.valueMutated = isFunction(valueMutated) ? valueMutated : defaultValueMutated;
2624
+ this.valueObserved = isFunction(valueObserved) ? valueObserved : defaultValueObserved;
2625
+ this.valueIsObservable = isFunction(valueIsObservable) ? valueIsObservable : defaultValueIsObservable;
2626
+ this.tagPropertyKey = tagPropertyKey;
2604
2627
  }
2605
2628
 
2606
- _createClass(ReactiveMembrane, [{
2629
+ _createClass(ObservableMembrane, [{
2607
2630
  key: "getProxy",
2608
2631
  value: function getProxy(value) {
2609
2632
  var unwrappedValue = unwrap$1(value);
2610
- var distorted = this.valueDistortion(unwrappedValue);
2611
2633
 
2612
- if (this.valueIsObservable(distorted)) {
2613
- var o = this.getReactiveState(unwrappedValue, distorted); // when trying to extract the writable version of a readonly
2614
- // we return the readonly.
2634
+ if (this.valueIsObservable(unwrappedValue)) {
2635
+ // When trying to extract the writable version of a readonly we return the readonly.
2636
+ if (this.readOnlyObjectGraph.get(unwrappedValue) === value) {
2637
+ return value;
2638
+ }
2615
2639
 
2616
- return o.readOnly === value ? value : o.reactive;
2640
+ return this.getReactiveHandler(unwrappedValue);
2617
2641
  }
2618
2642
 
2619
- return distorted;
2643
+ return unwrappedValue;
2620
2644
  }
2621
2645
  }, {
2622
2646
  key: "getReadOnlyProxy",
2623
2647
  value: function getReadOnlyProxy(value) {
2624
2648
  value = unwrap$1(value);
2625
- var distorted = this.valueDistortion(value);
2626
2649
 
2627
- if (this.valueIsObservable(distorted)) {
2628
- return this.getReactiveState(value, distorted).readOnly;
2650
+ if (this.valueIsObservable(value)) {
2651
+ return this.getReadOnlyHandler(value);
2629
2652
  }
2630
2653
 
2631
- return distorted;
2654
+ return value;
2632
2655
  }
2633
2656
  }, {
2634
2657
  key: "unwrapProxy",
@@ -2636,48 +2659,40 @@
2636
2659
  return unwrap$1(p);
2637
2660
  }
2638
2661
  }, {
2639
- key: "getReactiveState",
2640
- value: function getReactiveState(value, distortedValue) {
2641
- var objectGraph = this.objectGraph;
2642
- var reactiveState = objectGraph.get(distortedValue);
2643
-
2644
- if (reactiveState) {
2645
- return reactiveState;
2662
+ key: "getReactiveHandler",
2663
+ value: function getReactiveHandler(value) {
2664
+ var proxy = this.reactiveObjectGraph.get(value);
2665
+
2666
+ if (isUndefined(proxy)) {
2667
+ // caching the proxy after the first time it is accessed
2668
+ var handler = new ReactiveProxyHandler(this, value);
2669
+ proxy = new Proxy(createShadowTarget(value), handler);
2670
+ registerProxy(proxy, value);
2671
+ this.reactiveObjectGraph.set(value, proxy);
2646
2672
  }
2647
2673
 
2648
- var membrane = this;
2649
- reactiveState = {
2650
- get reactive() {
2651
- var reactiveHandler = new ReactiveProxyHandler(membrane, distortedValue); // caching the reactive proxy after the first time it is accessed
2652
-
2653
- var proxy = new Proxy(createShadowTarget(distortedValue), reactiveHandler);
2654
- registerProxy(proxy, value);
2655
- ObjectDefineProperty(this, 'reactive', {
2656
- value: proxy
2657
- });
2658
- return proxy;
2659
- },
2660
-
2661
- get readOnly() {
2662
- var readOnlyHandler = new ReadOnlyHandler(membrane, distortedValue); // caching the readOnly proxy after the first time it is accessed
2663
-
2664
- var proxy = new Proxy(createShadowTarget(distortedValue), readOnlyHandler);
2665
- registerProxy(proxy, value);
2666
- ObjectDefineProperty(this, 'readOnly', {
2667
- value: proxy
2668
- });
2669
- return proxy;
2670
- }
2674
+ return proxy;
2675
+ }
2676
+ }, {
2677
+ key: "getReadOnlyHandler",
2678
+ value: function getReadOnlyHandler(value) {
2679
+ var proxy = this.readOnlyObjectGraph.get(value);
2680
+
2681
+ if (isUndefined(proxy)) {
2682
+ // caching the proxy after the first time it is accessed
2683
+ var handler = new ReadOnlyHandler(this, value);
2684
+ proxy = new Proxy(createShadowTarget(value), handler);
2685
+ registerProxy(proxy, value);
2686
+ this.readOnlyObjectGraph.set(value, proxy);
2687
+ }
2671
2688
 
2672
- };
2673
- objectGraph.set(distortedValue, reactiveState);
2674
- return reactiveState;
2689
+ return proxy;
2675
2690
  }
2676
2691
  }]);
2677
2692
 
2678
- return ReactiveMembrane;
2693
+ return ObservableMembrane;
2679
2694
  }();
2680
- /** version: 1.0.0 */
2695
+ /** version: 2.0.0 */
2681
2696
 
2682
2697
  /*
2683
2698
  * Copyright (c) 2018, salesforce.com, inc.
@@ -2688,15 +2703,9 @@
2688
2703
 
2689
2704
 
2690
2705
  var lockerLivePropertyKey = Symbol.for('@@lockerLiveValue');
2691
-
2692
- function valueDistortion(value) {
2693
- return value;
2694
- }
2695
-
2696
- var reactiveMembrane = new ReactiveMembrane({
2706
+ var reactiveMembrane = new ObservableMembrane({
2697
2707
  valueObserved: valueObserved,
2698
2708
  valueMutated: valueMutated,
2699
- valueDistortion: valueDistortion,
2700
2709
  tagPropertyKey: lockerLivePropertyKey
2701
2710
  });
2702
2711
  /**
@@ -2705,16 +2714,9 @@
2705
2714
  * change or being removed.
2706
2715
  */
2707
2716
 
2708
- var unwrap = function unwrap(value) {
2709
- var unwrapped = reactiveMembrane.unwrapProxy(value);
2710
-
2711
- if (unwrapped !== value) {
2712
- // if value is a proxy, unwrap to access original value and apply distortion
2713
- return valueDistortion(unwrapped);
2714
- }
2715
-
2716
- return value;
2717
- };
2717
+ function unwrap(value) {
2718
+ return reactiveMembrane.unwrapProxy(value);
2719
+ }
2718
2720
  /*
2719
2721
  * Copyright (c) 2018, salesforce.com, inc.
2720
2722
  * All rights reserved.
@@ -4738,7 +4740,7 @@
4738
4740
 
4739
4741
  var elmAttrValue = renderer.getAttribute(elm, attrName);
4740
4742
 
4741
- if (attrValue !== elmAttrValue) {
4743
+ if (String(attrValue) !== elmAttrValue) {
4742
4744
  logError("Mismatch hydrating element <".concat(elm.tagName.toLowerCase(), ">: attribute \"").concat(attrName, "\" has different values, expected \"").concat(attrValue, "\" but found \"").concat(elmAttrValue, "\""), vnode.owner);
4743
4745
  nodesAreCompatible = false;
4744
4746
  }
@@ -4755,7 +4757,7 @@
4755
4757
  var nodesAreCompatible = true;
4756
4758
  var vnodeClassName;
4757
4759
 
4758
- if (!isUndefined$1(className) && className !== elm.className) {
4760
+ if (!isUndefined$1(className) && String(className) !== elm.className) {
4759
4761
  // className is used when class is bound to an expr.
4760
4762
  nodesAreCompatible = false;
4761
4763
  vnodeClassName = className;
@@ -5533,7 +5535,7 @@
5533
5535
 
5534
5536
 
5535
5537
  function d(value) {
5536
- return value == null ? '' : value;
5538
+ return value == null ? '' : String(value);
5537
5539
  } // [b]ind function
5538
5540
 
5539
5541
 
@@ -5814,6 +5816,7 @@
5814
5816
 
5815
5817
  function evaluateStylesheetsContent(stylesheets, stylesheetToken, vm) {
5816
5818
  var content = [];
5819
+ var root;
5817
5820
 
5818
5821
  for (var _i16 = 0; _i16 < stylesheets.length; _i16++) {
5819
5822
  var stylesheet = stylesheets[_i16];
@@ -5826,23 +5829,46 @@
5826
5829
  // the component instance might be attempting to use an old version of
5827
5830
  // the stylesheet, while internally, we have a replacement for it.
5828
5831
  stylesheet = getStyleOrSwappedStyle(stylesheet);
5829
- } // Use the actual `:host` selector if we're rendering global CSS for light DOM, or if we're rendering
5830
- // native shadow DOM. Synthetic shadow DOM never uses `:host`.
5832
+ }
5833
+
5834
+ var isScopedCss = stylesheet[KEY__SCOPED_CSS]; // Apply the scope token only if the stylesheet itself is scoped, or if we're rendering synthetic shadow.
5831
5835
 
5836
+ var scopeToken = isScopedCss || vm.shadowMode === 1
5837
+ /* Synthetic */
5838
+ && vm.renderMode === 1
5839
+ /* Shadow */
5840
+ ? stylesheetToken : undefined; // Use the actual `:host` selector if we're rendering global CSS for light DOM, or if we're rendering
5841
+ // native shadow DOM. Synthetic shadow DOM never uses `:host`.
5832
5842
 
5833
- var isScopedCss = stylesheet[KEY__SCOPED_CSS];
5834
5843
  var useActualHostSelector = vm.renderMode === 0
5835
5844
  /* Light */
5836
5845
  ? !isScopedCss : vm.shadowMode === 0
5837
5846
  /* Native */
5838
- ; // Apply the scope token only if the stylesheet itself is scoped, or if we're rendering synthetic shadow.
5847
+ ; // Use the native :dir() pseudoclass only in native shadow DOM. Otherwise, in synthetic shadow,
5848
+ // we use an attribute selector on the host to simulate :dir().
5839
5849
 
5840
- var scopeToken = isScopedCss || vm.shadowMode === 1
5841
- /* Synthetic */
5842
- && vm.renderMode === 1
5850
+ var useNativeDirPseudoclass = void 0;
5851
+
5852
+ if (vm.renderMode === 1
5843
5853
  /* Shadow */
5844
- ? stylesheetToken : undefined;
5845
- ArrayPush$1.call(content, stylesheet(useActualHostSelector, scopeToken));
5854
+ ) {
5855
+ useNativeDirPseudoclass = vm.shadowMode === 0
5856
+ /* Native */
5857
+ ;
5858
+ } else {
5859
+ // Light DOM components should only render `[dir]` if they're inside of a synthetic shadow root.
5860
+ // At the top level (root is null) or inside of a native shadow root, they should use `:dir()`.
5861
+ if (isUndefined$1(root)) {
5862
+ // Only calculate the root once as necessary
5863
+ root = getNearestShadowComponent(vm);
5864
+ }
5865
+
5866
+ useNativeDirPseudoclass = isNull(root) || root.shadowMode === 0
5867
+ /* Native */
5868
+ ;
5869
+ }
5870
+
5871
+ ArrayPush$1.call(content, stylesheet(scopeToken, useActualHostSelector, useNativeDirPseudoclass));
5846
5872
  }
5847
5873
  }
5848
5874
 
@@ -5864,14 +5890,12 @@
5864
5890
  // https://github.com/salesforce/lwc/pull/2460#discussion_r691208892
5865
5891
 
5866
5892
 
5867
- function getNearestNativeShadowComponent(vm) {
5893
+ function getNearestShadowComponent(vm) {
5868
5894
  var owner = vm;
5869
5895
 
5870
5896
  while (!isNull(owner)) {
5871
5897
  if (owner.renderMode === 1
5872
5898
  /* Shadow */
5873
- && owner.shadowMode === 0
5874
- /* Native */
5875
5899
  ) {
5876
5900
  return owner;
5877
5901
  }
@@ -5882,6 +5906,20 @@
5882
5906
  return owner;
5883
5907
  }
5884
5908
 
5909
+ function getNearestNativeShadowComponent(vm) {
5910
+ var owner = getNearestShadowComponent(vm);
5911
+
5912
+ if (!isNull(owner) && owner.shadowMode === 1
5913
+ /* Synthetic */
5914
+ ) {
5915
+ // Synthetic-within-native is impossible. So if the nearest shadow component is
5916
+ // synthetic, we know we won't find a native component if we go any further.
5917
+ return null;
5918
+ }
5919
+
5920
+ return owner;
5921
+ }
5922
+
5885
5923
  function createStylesheet(vm, stylesheets) {
5886
5924
  var renderer = vm.renderer,
5887
5925
  renderMode = vm.renderMode,
@@ -5895,7 +5933,7 @@
5895
5933
  for (var _i17 = 0; _i17 < stylesheets.length; _i17++) {
5896
5934
  renderer.insertGlobalStylesheet(stylesheets[_i17]);
5897
5935
  }
5898
- } else if (renderer.ssr || renderer.isHydrating) {
5936
+ } else if (renderer.ssr || renderer.isHydrating()) {
5899
5937
  // Note: We need to ensure that during hydration, the stylesheets method is the same as those in ssr.
5900
5938
  // This works in the client, because the stylesheets are created, and cached in the VM
5901
5939
  // the first time the VM renders.
@@ -7551,7 +7589,7 @@
7551
7589
  hooksAreSet = true;
7552
7590
  setSanitizeHtmlContentHook(hooks.sanitizeHtmlContent);
7553
7591
  }
7554
- /* version: 2.5.8 */
7592
+ /* version: 2.6.1 */
7555
7593
 
7556
7594
  /*
7557
7595
  * Copyright (c) 2018, salesforce.com, inc.
@@ -7706,19 +7744,17 @@
7706
7744
  HTMLElementConstructor.prototype = HTMLElement.prototype;
7707
7745
  }
7708
7746
 
7709
- var isHydrating = false;
7747
+ var _isHydrating = false;
7710
7748
 
7711
7749
  function setIsHydrating(v) {
7712
- isHydrating = v;
7750
+ _isHydrating = v;
7713
7751
  }
7714
7752
 
7715
7753
  var renderer = {
7716
7754
  ssr: false,
7717
-
7718
- get isHydrating() {
7719
- return isHydrating;
7755
+ isHydrating: function isHydrating() {
7756
+ return _isHydrating;
7720
7757
  },
7721
-
7722
7758
  isNativeShadowDefined: _globalThis[KEY__IS_NATIVE_SHADOW_ROOT_DEFINED],
7723
7759
  isSyntheticShadowDefined: hasOwnProperty$1.call(Element.prototype, KEY__SHADOW_TOKEN),
7724
7760
  createElement: function createElement(tagName, namespace) {
@@ -7740,7 +7776,7 @@
7740
7776
  return node.nextSibling;
7741
7777
  },
7742
7778
  attachShadow: function attachShadow(element, options) {
7743
- if (isHydrating) {
7779
+ if (_isHydrating) {
7744
7780
  return element.shadowRoot;
7745
7781
  }
7746
7782
 
@@ -8206,7 +8242,7 @@
8206
8242
  });
8207
8243
  freeze(LightningElement);
8208
8244
  seal(LightningElement.prototype);
8209
- /* version: 2.5.8 */
8245
+ /* version: 2.6.1 */
8210
8246
 
8211
8247
  exports.LightningElement = LightningElement;
8212
8248
  exports.__unstable__ProfilerControl = profilerControl;