lwc 2.43.0 → 2.45.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 (68) hide show
  1. package/dist/engine-dom/esm/es2017/engine-dom.js +53 -231
  2. package/dist/engine-dom/esm/es2017/engine-dom.js.map +1 -1
  3. package/dist/engine-dom/iife/es2017/engine-dom.js +52 -231
  4. package/dist/engine-dom/iife/es2017/engine-dom.js.map +1 -1
  5. package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
  6. package/dist/engine-dom/iife/es2017/engine-dom_debug.js +8 -28
  7. package/dist/engine-dom/iife/es2017/engine-dom_debug.js.map +1 -1
  8. package/dist/engine-dom/iife/es5/engine-dom.js +51 -232
  9. package/dist/engine-dom/iife/es5/engine-dom.js.map +1 -1
  10. package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
  11. package/dist/engine-dom/iife/es5/engine-dom_debug.js +7 -27
  12. package/dist/engine-dom/iife/es5/engine-dom_debug.js.map +1 -1
  13. package/dist/engine-dom/umd/es2017/engine-dom.js +52 -231
  14. package/dist/engine-dom/umd/es2017/engine-dom.js.map +1 -1
  15. package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
  16. package/dist/engine-dom/umd/es2017/engine-dom_debug.js +8 -28
  17. package/dist/engine-dom/umd/es2017/engine-dom_debug.js.map +1 -1
  18. package/dist/engine-dom/umd/es5/engine-dom.js +51 -232
  19. package/dist/engine-dom/umd/es5/engine-dom.js.map +1 -1
  20. package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
  21. package/dist/engine-dom/umd/es5/engine-dom_debug.js +7 -27
  22. package/dist/engine-dom/umd/es5/engine-dom_debug.js.map +1 -1
  23. package/dist/engine-server/commonjs/es2017/engine-server.js +121 -203
  24. package/dist/engine-server/commonjs/es2017/engine-server.js.map +1 -1
  25. package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
  26. package/dist/engine-server/esm/es2017/engine-server.js +103 -203
  27. package/dist/engine-server/esm/es2017/engine-server.js.map +1 -1
  28. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +89 -74
  29. package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js.map +1 -1
  30. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +89 -74
  31. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js.map +1 -1
  32. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -2
  33. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +85 -70
  34. package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js.map +1 -1
  35. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +88 -71
  36. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js.map +1 -1
  37. package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -2
  38. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +84 -67
  39. package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js.map +1 -1
  40. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +89 -74
  41. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js.map +1 -1
  42. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +2 -2
  43. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +85 -70
  44. package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js.map +1 -1
  45. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +88 -71
  46. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js.map +1 -1
  47. package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -2
  48. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +84 -67
  49. package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js.map +1 -1
  50. package/dist/wire-service/esm/es2017/wire-service.js +2 -2
  51. package/dist/wire-service/esm/es2017/wire-service.js.map +1 -1
  52. package/dist/wire-service/iife/es2017/wire-service.js +2 -2
  53. package/dist/wire-service/iife/es2017/wire-service.js.map +1 -1
  54. package/dist/wire-service/iife/es2017/wire-service_debug.js +2 -2
  55. package/dist/wire-service/iife/es2017/wire-service_debug.js.map +1 -1
  56. package/dist/wire-service/iife/es5/wire-service.js +2 -2
  57. package/dist/wire-service/iife/es5/wire-service.js.map +1 -1
  58. package/dist/wire-service/iife/es5/wire-service_debug.js +2 -2
  59. package/dist/wire-service/iife/es5/wire-service_debug.js.map +1 -1
  60. package/dist/wire-service/umd/es2017/wire-service.js +2 -2
  61. package/dist/wire-service/umd/es2017/wire-service.js.map +1 -1
  62. package/dist/wire-service/umd/es2017/wire-service_debug.js +2 -2
  63. package/dist/wire-service/umd/es2017/wire-service_debug.js.map +1 -1
  64. package/dist/wire-service/umd/es5/wire-service.js +2 -2
  65. package/dist/wire-service/umd/es5/wire-service.js.map +1 -1
  66. package/dist/wire-service/umd/es5/wire-service_debug.js +2 -2
  67. package/dist/wire-service/umd/es5/wire-service_debug.js.map +1 -1
  68. package/package.json +7 -7
@@ -43,7 +43,7 @@ var assert = /*#__PURE__*/Object.freeze({
43
43
  */
44
44
  const { assign, create, defineProperties, defineProperty, freeze, getOwnPropertyDescriptor, getOwnPropertyNames, getPrototypeOf, hasOwnProperty, isFrozen, keys, seal, setPrototypeOf, } = Object;
45
45
  const { isArray } = Array;
46
- const { concat: ArrayConcat, copyWithin: ArrayCopyWithin, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, } = Array.prototype;
46
+ const { concat: ArrayConcat, copyWithin: ArrayCopyWithin, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, } = Array.prototype;
47
47
  const { charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, } = String.prototype;
48
48
  function isUndefined(obj) {
49
49
  return obj === undefined;
@@ -120,7 +120,7 @@ const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
120
120
  // We use this to detect symbol support in order to avoid the expensive symbol polyfill. Note that
121
121
  // we can't use typeof since it will fail when transpiling.
122
122
  const hasNativeSymbolSupport = /*@__PURE__*/ (() => Symbol('x').toString() === 'Symbol(x)')();
123
- /** version: 2.43.0 */
123
+ /** version: 2.45.0 */
124
124
 
125
125
  /**
126
126
  * Copyright (C) 2018 salesforce.com, inc.
@@ -129,7 +129,7 @@ const hasNativeSymbolSupport = /*@__PURE__*/ (() => Symbol('x').toString() === '
129
129
  if (!_globalThis.lwcRuntimeFlags) {
130
130
  Object.defineProperty(_globalThis, 'lwcRuntimeFlags', { value: create(null) });
131
131
  }
132
- /** version: 2.43.0 */
132
+ /** version: 2.45.0 */
133
133
 
134
134
  /*
135
135
  * Copyright (c) 2018, salesforce.com, inc.
@@ -1503,7 +1503,7 @@ if (hasOwnProperty.call(HTMLElement.prototype, 'parentElement')) {
1503
1503
  */
1504
1504
  const EventListenerMap = new WeakMap();
1505
1505
  const ComposedPathMap = new WeakMap();
1506
- function isEventListenerOrEventListenerObject(fnOrObj) {
1506
+ function isEventListenerOrEventListenerObject$1(fnOrObj) {
1507
1507
  return (isFunction(fnOrObj) ||
1508
1508
  (isObject(fnOrObj) &&
1509
1509
  !isNull(fnOrObj) &&
@@ -1524,7 +1524,7 @@ function shouldInvokeListener(event, target, currentTarget) {
1524
1524
  return composedPath.includes(currentTarget);
1525
1525
  }
1526
1526
  function getEventListenerWrapper(fnOrObj) {
1527
- if (!isEventListenerOrEventListenerObject(fnOrObj)) {
1527
+ if (!isEventListenerOrEventListenerObject$1(fnOrObj)) {
1528
1528
  return fnOrObj;
1529
1529
  }
1530
1530
  let wrapperFn = EventListenerMap.get(fnOrObj);
@@ -1555,6 +1555,17 @@ function getEventListenerWrapper(fnOrObj) {
1555
1555
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
1556
1556
  */
1557
1557
  const eventToContextMap = new WeakMap();
1558
+ function getEventHandler(listener) {
1559
+ if (isFunction(listener)) {
1560
+ return listener;
1561
+ }
1562
+ else {
1563
+ return listener.handleEvent;
1564
+ }
1565
+ }
1566
+ function isEventListenerOrEventListenerObject(listener) {
1567
+ return isFunction(listener) || isFunction(listener === null || listener === void 0 ? void 0 : listener.handleEvent);
1568
+ }
1558
1569
  const customElementToWrappedListeners = new WeakMap();
1559
1570
  function getEventMap(elm) {
1560
1571
  let listenerInfo = customElementToWrappedListeners.get(elm);
@@ -1574,49 +1585,58 @@ function getActualTarget(event) {
1574
1585
  return (_a = eventToShadowRootMap.get(event)) !== null && _a !== void 0 ? _a : eventTargetGetter.call(event);
1575
1586
  }
1576
1587
  const shadowRootEventListenerMap = new WeakMap();
1577
- function getWrappedShadowRootListener(listener) {
1578
- if (!isFunction(listener)) {
1588
+ function getManagedShadowRootListener(listener) {
1589
+ if (!isEventListenerOrEventListenerObject(listener)) {
1579
1590
  throw new TypeError(); // avoiding problems with non-valid listeners
1580
1591
  }
1581
- let shadowRootWrappedListener = shadowRootEventListenerMap.get(listener);
1582
- if (isUndefined(shadowRootWrappedListener)) {
1583
- shadowRootWrappedListener = function (event) {
1584
- // currentTarget is always defined inside an event listener
1585
- let currentTarget = eventCurrentTargetGetter.call(event);
1586
- // If currentTarget is not an instance of a native shadow root then we're dealing with a
1587
- // host element whose synthetic shadow root must be accessed via getShadowRoot().
1588
- if (!isInstanceOfNativeShadowRoot(currentTarget)) {
1589
- currentTarget = getShadowRoot(currentTarget);
1590
- }
1591
- const actualTarget = getActualTarget(event);
1592
- if (shouldInvokeListener(event, actualTarget, currentTarget)) {
1593
- listener.call(currentTarget, event);
1594
- }
1592
+ let managedListener = shadowRootEventListenerMap.get(listener);
1593
+ if (isUndefined(managedListener)) {
1594
+ managedListener = {
1595
+ identity: listener,
1596
+ placement: 1 /* EventListenerContext.SHADOW_ROOT_LISTENER */,
1597
+ handleEvent(event) {
1598
+ // currentTarget is always defined inside an event listener
1599
+ let currentTarget = eventCurrentTargetGetter.call(event);
1600
+ // If currentTarget is not an instance of a native shadow root then we're dealing with a
1601
+ // host element whose synthetic shadow root must be accessed via getShadowRoot().
1602
+ if (!isInstanceOfNativeShadowRoot(currentTarget)) {
1603
+ currentTarget = getShadowRoot(currentTarget);
1604
+ }
1605
+ const actualTarget = getActualTarget(event);
1606
+ if (shouldInvokeListener(event, actualTarget, currentTarget)) {
1607
+ getEventHandler(listener).call(currentTarget, event);
1608
+ }
1609
+ },
1595
1610
  };
1596
- shadowRootWrappedListener.placement = 1 /* EventListenerContext.SHADOW_ROOT_LISTENER */;
1597
- shadowRootEventListenerMap.set(listener, shadowRootWrappedListener);
1611
+ shadowRootEventListenerMap.set(listener, managedListener);
1598
1612
  }
1599
- return shadowRootWrappedListener;
1613
+ return managedListener;
1600
1614
  }
1601
1615
  const customElementEventListenerMap = new WeakMap();
1602
- function getWrappedCustomElementListener(listener) {
1603
- if (!isFunction(listener)) {
1616
+ function getManagedCustomElementListener(listener) {
1617
+ if (!isEventListenerOrEventListenerObject(listener)) {
1604
1618
  throw new TypeError(); // avoiding problems with non-valid listeners
1605
1619
  }
1606
- let customElementWrappedListener = customElementEventListenerMap.get(listener);
1607
- if (isUndefined(customElementWrappedListener)) {
1608
- customElementWrappedListener = function (event) {
1609
- // currentTarget is always defined inside an event listener
1610
- const currentTarget = eventCurrentTargetGetter.call(event);
1611
- const actualTarget = getActualTarget(event);
1612
- if (shouldInvokeListener(event, actualTarget, currentTarget)) {
1613
- listener.call(currentTarget, event);
1614
- }
1620
+ let managedListener = customElementEventListenerMap.get(listener);
1621
+ if (isUndefined(managedListener)) {
1622
+ managedListener = {
1623
+ identity: listener,
1624
+ placement: 0 /* EventListenerContext.CUSTOM_ELEMENT_LISTENER */,
1625
+ handleEvent(event) {
1626
+ // currentTarget is always defined inside an event listener
1627
+ const currentTarget = eventCurrentTargetGetter.call(event);
1628
+ const actualTarget = getActualTarget(event);
1629
+ if (shouldInvokeListener(event, actualTarget, currentTarget)) {
1630
+ getEventHandler(listener).call(currentTarget, event);
1631
+ }
1632
+ },
1615
1633
  };
1616
- customElementWrappedListener.placement = 0 /* EventListenerContext.CUSTOM_ELEMENT_LISTENER */;
1617
- customElementEventListenerMap.set(listener, customElementWrappedListener);
1634
+ customElementEventListenerMap.set(listener, managedListener);
1618
1635
  }
1619
- return customElementWrappedListener;
1636
+ return managedListener;
1637
+ }
1638
+ function indexOfManagedListener(listeners, listener) {
1639
+ return ArrayFindIndex.call(listeners, (l) => l.identity === listener.identity);
1620
1640
  }
1621
1641
  function domListener(evt) {
1622
1642
  let immediatePropagationStopped = false;
@@ -1650,9 +1670,9 @@ function domListener(evt) {
1650
1670
  forEach.call(bookkeeping, (listener) => {
1651
1671
  if (isFalse(immediatePropagationStopped) && listener.placement === placement) {
1652
1672
  // making sure that the listener was not removed from the original listener queue
1653
- if (ArrayIndexOf.call(listeners, listener) !== -1) {
1673
+ if (indexOfManagedListener(listeners, listener) !== -1) {
1654
1674
  // all handlers on the custom element should be called with undefined 'this'
1655
- listener.call(undefined, evt);
1675
+ listener.handleEvent.call(undefined, evt);
1656
1676
  }
1657
1677
  }
1658
1678
  });
@@ -1666,31 +1686,30 @@ function domListener(evt) {
1666
1686
  }
1667
1687
  eventToContextMap.set(evt, 2 /* EventListenerContext.UNKNOWN_LISTENER */);
1668
1688
  }
1669
- function attachDOMListener(elm, type, wrappedListener) {
1689
+ function attachDOMListener(elm, type, managedListener) {
1670
1690
  const listenerMap = getEventMap(elm);
1671
- let cmpEventHandlers = listenerMap[type];
1672
- if (isUndefined(cmpEventHandlers)) {
1673
- cmpEventHandlers = listenerMap[type] = [];
1691
+ let listeners = listenerMap[type];
1692
+ if (isUndefined(listeners)) {
1693
+ listeners = listenerMap[type] = [];
1674
1694
  }
1675
1695
  // Prevent identical listeners from subscribing to the same event type.
1676
- // TODO [#1824]: Options will also play a factor when we introduce support for them (#1824).
1677
- if (ArrayIndexOf.call(cmpEventHandlers, wrappedListener) !== -1) {
1696
+ // TODO [#1824]: Options will also play a factor in deduping if we introduce options support
1697
+ if (indexOfManagedListener(listeners, managedListener) !== -1) {
1678
1698
  return;
1679
1699
  }
1680
1700
  // only add to DOM if there is no other listener on the same placement yet
1681
- if (cmpEventHandlers.length === 0) {
1682
- // super.addEventListener() - this will not work on
1701
+ if (listeners.length === 0) {
1683
1702
  addEventListener.call(elm, type, domListener);
1684
1703
  }
1685
- ArrayPush.call(cmpEventHandlers, wrappedListener);
1704
+ ArrayPush.call(listeners, managedListener);
1686
1705
  }
1687
- function detachDOMListener(elm, type, wrappedListener) {
1706
+ function detachDOMListener(elm, type, managedListener) {
1688
1707
  const listenerMap = getEventMap(elm);
1689
- let p;
1708
+ let index;
1690
1709
  let listeners;
1691
1710
  if (!isUndefined((listeners = listenerMap[type])) &&
1692
- (p = ArrayIndexOf.call(listeners, wrappedListener)) !== -1) {
1693
- ArraySplice.call(listeners, p, 1);
1711
+ (index = indexOfManagedListener(listeners, managedListener)) !== -1) {
1712
+ ArraySplice.call(listeners, index, 1);
1694
1713
  // only remove from DOM if there is no other listener on the same placement
1695
1714
  if (listeners.length === 0) {
1696
1715
  removeEventListener.call(elm, type, domListener);
@@ -1699,42 +1718,38 @@ function detachDOMListener(elm, type, wrappedListener) {
1699
1718
  }
1700
1719
  function addCustomElementEventListener(type, listener, _options) {
1701
1720
  if (process.env.NODE_ENV !== 'production') {
1702
- if (!isFunction(listener)) {
1703
- throw new TypeError(`Invalid second argument for Element.addEventListener() in ${toString(this)} for event "${type}". Expected an EventListener but received ${listener}.`);
1721
+ if (!isEventListenerOrEventListenerObject(listener)) {
1722
+ throw new TypeError(`Invalid second argument for Element.addEventListener() in ${toString(this)} for event "${type}". Expected EventListener or EventListenerObject but received ${listener}.`);
1704
1723
  }
1705
1724
  }
1706
- // TODO [#1824]: Lift this restriction on the option parameter
1707
- if (isFunction(listener)) {
1708
- const wrappedListener = getWrappedCustomElementListener(listener);
1709
- attachDOMListener(this, type, wrappedListener);
1725
+ if (isEventListenerOrEventListenerObject(listener)) {
1726
+ const managedListener = getManagedCustomElementListener(listener);
1727
+ attachDOMListener(this, type, managedListener);
1710
1728
  }
1711
1729
  }
1712
1730
  function removeCustomElementEventListener(type, listener, _options) {
1713
- // TODO [#1824]: Lift this restriction on the option parameter
1714
- if (isFunction(listener)) {
1715
- const wrappedListener = getWrappedCustomElementListener(listener);
1716
- detachDOMListener(this, type, wrappedListener);
1731
+ if (isEventListenerOrEventListenerObject(listener)) {
1732
+ const managedListener = getManagedCustomElementListener(listener);
1733
+ detachDOMListener(this, type, managedListener);
1717
1734
  }
1718
1735
  }
1719
1736
  function addShadowRootEventListener(sr, type, listener, _options) {
1720
1737
  if (process.env.NODE_ENV !== 'production') {
1721
- if (!isFunction(listener)) {
1722
- throw new TypeError(`Invalid second argument for ShadowRoot.addEventListener() in ${toString(sr)} for event "${type}". Expected an EventListener but received ${listener}.`);
1738
+ if (!isEventListenerOrEventListenerObject(listener)) {
1739
+ throw new TypeError(`Invalid second argument for ShadowRoot.addEventListener() in ${toString(sr)} for event "${type}". Expected EventListener or EventListenerObject but received ${listener}.`);
1723
1740
  }
1724
1741
  }
1725
- // TODO [#1824]: Lift this restriction on the option parameter
1726
- if (isFunction(listener)) {
1742
+ if (isEventListenerOrEventListenerObject(listener)) {
1727
1743
  const elm = getHost(sr);
1728
- const wrappedListener = getWrappedShadowRootListener(listener);
1729
- attachDOMListener(elm, type, wrappedListener);
1744
+ const managedListener = getManagedShadowRootListener(listener);
1745
+ attachDOMListener(elm, type, managedListener);
1730
1746
  }
1731
1747
  }
1732
1748
  function removeShadowRootEventListener(sr, type, listener, _options) {
1733
- // TODO [#1824]: Lift this restriction on the option parameter
1734
- if (isFunction(listener)) {
1749
+ if (isEventListenerOrEventListenerObject(listener)) {
1735
1750
  const elm = getHost(sr);
1736
- const wrappedListener = getWrappedShadowRootListener(listener);
1737
- detachDOMListener(elm, type, wrappedListener);
1751
+ const managedListener = getManagedShadowRootListener(listener);
1752
+ detachDOMListener(elm, type, managedListener);
1738
1753
  }
1739
1754
  }
1740
1755
 
@@ -4676,5 +4691,5 @@ defineProperty(Element.prototype, '$domManual$', {
4676
4691
  },
4677
4692
  configurable: true,
4678
4693
  });
4679
- /** version: 2.43.0 */
4694
+ /** version: 2.45.0 */
4680
4695
  //# sourceMappingURL=synthetic-shadow.js.map