@lwc/synthetic-shadow 6.2.0 → 6.3.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.
@@ -8,6 +8,7 @@ export declare const eventToContextMap: WeakMap<Event, EventListenerContext>;
8
8
  * Events dispatched on shadow roots actually end up being dispatched on their hosts. This means that the event.target
9
9
  * property of events dispatched on shadow roots always resolve to their host. This function understands this
10
10
  * abstraction and properly returns a reference to the shadow root when appropriate.
11
+ * @param event
11
12
  */
12
13
  export declare function getActualTarget(event: Event): EventTarget;
13
14
  export declare function addCustomElementEventListener(this: Element, type: string, listener: unknown, _options?: boolean | AddEventListenerOptions): void;
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * This methods filters out elements that are not in the same shadow root of context.
3
3
  * It does not enforce shadow dom semantics if $context is not managed by LWC
4
+ * @param context
5
+ * @param unfilteredNodes
4
6
  */
5
7
  export declare function getNonPatchedFilteredArrayOfNodes<T extends Node>(context: Element, unfilteredNodes: Array<T>): Array<T>;
@@ -3,6 +3,7 @@
3
3
  * based on the light-dom slotting mechanism. This applies to synthetic slot elements
4
4
  * and elements with shadow dom attached to them. It doesn't apply to native slot elements
5
5
  * because we don't want to patch the children getters for those elements.
6
+ * @param node
6
7
  */
7
8
  export declare function hasMountedChildren(node: Node): boolean;
8
9
  export declare const getInternalChildNodes: (node: Node) => NodeListOf<ChildNode>;
package/dist/index.cjs.js CHANGED
@@ -16,21 +16,40 @@ if (!lwcRuntimeFlags.ENABLE_FORCE_SHADOW_MIGRATE_MODE) {
16
16
  * SPDX-License-Identifier: MIT
17
17
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
18
18
  */
19
+ /**
20
+ *
21
+ * @param value
22
+ * @param msg
23
+ */
19
24
  function invariant(value, msg) {
20
25
  if (!value) {
21
26
  throw new Error(`Invariant Violation: ${msg}`);
22
27
  }
23
28
  }
29
+ /**
30
+ *
31
+ * @param value
32
+ * @param msg
33
+ */
24
34
  function isTrue$1(value, msg) {
25
35
  if (!value) {
26
36
  throw new Error(`Assert Violation: ${msg}`);
27
37
  }
28
38
  }
39
+ /**
40
+ *
41
+ * @param value
42
+ * @param msg
43
+ */
29
44
  function isFalse$1(value, msg) {
30
45
  if (value) {
31
46
  throw new Error(`Assert Violation: ${msg}`);
32
47
  }
33
48
  }
49
+ /**
50
+ *
51
+ * @param msg
52
+ */
34
53
  function fail(msg) {
35
54
  throw new Error(msg);
36
55
  }
@@ -44,50 +63,132 @@ var assert = /*#__PURE__*/Object.freeze({
44
63
  });
45
64
 
46
65
  /*
47
- * Copyright (c) 2018, salesforce.com, inc.
66
+ * Copyright (c) 2024, Salesforce, Inc.
48
67
  * All rights reserved.
49
68
  * SPDX-License-Identifier: MIT
50
69
  * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
51
70
  */
52
- const { assign, create, defineProperties, defineProperty, entries, freeze, getOwnPropertyDescriptor, getOwnPropertyDescriptors, getOwnPropertyNames, getPrototypeOf, hasOwnProperty, isFrozen, keys, seal, setPrototypeOf, } = Object;
71
+ const {
72
+ /** Detached {@linkcode Object.assign}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign MDN Reference}. */
73
+ assign,
74
+ /** Detached {@linkcode Object.create}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create MDN Reference}. */
75
+ create,
76
+ /** Detached {@linkcode Object.defineProperties}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties MDN Reference}. */
77
+ defineProperties,
78
+ /** Detached {@linkcode Object.defineProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty MDN Reference}. */
79
+ defineProperty,
80
+ /** Detached {@linkcode Object.entries}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries MDN Reference}. */
81
+ entries,
82
+ /** Detached {@linkcode Object.freeze}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze MDN Reference}. */
83
+ freeze,
84
+ /** Detached {@linkcode Object.getOwnPropertyDescriptor}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor MDN Reference}. */
85
+ getOwnPropertyDescriptor,
86
+ /** Detached {@linkcode Object.getOwnPropertyDescriptors}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors MDN Reference}. */
87
+ getOwnPropertyDescriptors,
88
+ /** Detached {@linkcode Object.getOwnPropertyNames}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames MDN Reference}. */
89
+ getOwnPropertyNames,
90
+ /** Detached {@linkcode Object.getPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf MDN Reference}. */
91
+ getPrototypeOf,
92
+ /** Detached {@linkcode Object.hasOwnProperty}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty MDN Reference}. */
93
+ hasOwnProperty,
94
+ /** Detached {@linkcode Object.isFrozen}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen MDN Reference}. */
95
+ isFrozen,
96
+ /** Detached {@linkcode Object.keys}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys MDN Reference}. */
97
+ keys,
98
+ /** Detached {@linkcode Object.seal}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal MDN Reference}. */
99
+ seal,
100
+ /** Detached {@linkcode Object.setPrototypeOf}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf MDN Reference}. */
101
+ setPrototypeOf, } = Object;
102
+ /** Detached {@linkcode Array.isArray}; see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray MDN Reference}. */
53
103
  const { isArray } = Array;
54
- const { concat: ArrayConcat, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, 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;
104
+ // For some reason, JSDoc don't get picked up for multiple renamed destructured constants (even
105
+ // though it works fine for one, e.g. isArray), so comments for these are added to the export
106
+ // statement, rather than this declaration.
107
+ const { concat: ArrayConcat, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, 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, // Weird anomaly!
108
+ } = Array.prototype;
109
+ /**
110
+ * Determines whether the argument is `undefined`.
111
+ * @param obj Value to test
112
+ * @returns `true` if the value is `undefined`.
113
+ */
55
114
  function isUndefined(obj) {
56
115
  return obj === undefined;
57
116
  }
117
+ /**
118
+ * Determines whether the argument is `null`.
119
+ * @param obj Value to test
120
+ * @returns `true` if the value is `null`.
121
+ */
58
122
  function isNull(obj) {
59
123
  return obj === null;
60
124
  }
125
+ /**
126
+ * Determines whether the argument is `true`.
127
+ * @param obj Value to test
128
+ * @returns `true` if the value is `true`.
129
+ */
61
130
  function isTrue(obj) {
62
131
  return obj === true;
63
132
  }
133
+ /**
134
+ * Determines whether the argument is `false`.
135
+ * @param obj Value to test
136
+ * @returns `true` if the value is `false`.
137
+ */
64
138
  function isFalse(obj) {
65
139
  return obj === false;
66
140
  }
141
+ /**
142
+ * Determines whether the argument is a function.
143
+ * @param obj Value to test
144
+ * @returns `true` if the value is a function.
145
+ */
67
146
  // Replacing `Function` with a narrower type that works for all our use cases is tricky...
68
147
  // eslint-disable-next-line @typescript-eslint/ban-types
69
148
  function isFunction(obj) {
70
149
  return typeof obj === 'function';
71
150
  }
151
+ /**
152
+ * Determines whether the argument is an object or null.
153
+ * @param obj Value to test
154
+ * @returns `true` if the value is an object or null.
155
+ */
72
156
  function isObject(obj) {
73
157
  return typeof obj === 'object';
74
158
  }
75
159
  const OtS = {}.toString;
160
+ /**
161
+ * Converts the argument to a string, safely accounting for objects with "null" prototype.
162
+ * Note that `toString(null)` returns `"[object Null]"` rather than `"null"`.
163
+ * @param obj Value to convert to a string.
164
+ * @returns String representation of the value.
165
+ */
76
166
  function toString(obj) {
77
- if (obj && obj.toString) {
167
+ if (obj?.toString) {
78
168
  // Arrays might hold objects with "null" prototype So using
79
169
  // Array.prototype.toString directly will cause an error Iterate through
80
170
  // all the items and handle individually.
81
171
  if (isArray(obj)) {
172
+ // This behavior is slightly different from Array#toString:
173
+ // 1. Array#toString calls `this.join`, rather than Array#join
174
+ // Ex: arr = []; arr.join = () => 1; arr.toString() === 1; toString(arr) === ''
175
+ // 2. Array#toString delegates to Object#toString if `this.join` is not a function
176
+ // Ex: arr = []; arr.join = 'no'; arr.toString() === '[object Array]; toString(arr) = ''
177
+ // 3. Array#toString converts null/undefined to ''
178
+ // Ex: arr = [null, undefined]; arr.toString() === ','; toString(arr) === '[object Null],undefined'
179
+ // 4. Array#toString converts recursive references to arrays to ''
180
+ // Ex: arr = [1]; arr.push(arr, 2); arr.toString() === '1,,2'; toString(arr) throws
181
+ // Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString
82
182
  return ArrayJoin.call(ArrayMap.call(obj, toString), ',');
83
183
  }
84
184
  return obj.toString();
85
185
  }
86
186
  else if (typeof obj === 'object') {
187
+ // This catches null and returns "[object Null]". Weird, but kept for backwards compatibility.
87
188
  return OtS.call(obj);
88
189
  }
89
190
  else {
90
- return obj + '';
191
+ return String(obj);
91
192
  }
92
193
  }
93
194
 
@@ -109,7 +210,7 @@ const KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$';
109
210
  const KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
110
211
  const KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';
111
212
  const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
112
- /** version: 6.2.0 */
213
+ /** version: 6.3.0 */
113
214
 
114
215
  /**
115
216
  * Copyright (c) 2024 Salesforce, Inc.
@@ -117,7 +218,7 @@ const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
117
218
  if (!globalThis.lwcRuntimeFlags) {
118
219
  Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: create(null) });
119
220
  }
120
- /** version: 6.2.0 */
221
+ /** version: 6.3.0 */
121
222
 
122
223
  /*
123
224
  * Copyright (c) 2018, salesforce.com, inc.
@@ -386,6 +487,7 @@ function getNodeKey(node) {
386
487
  * This function does not traverse up for performance reasons, but is sufficient for most use
387
488
  * cases. If we need to traverse up and verify those nodes that don't have owner key, use
388
489
  * isNodeDeepShadowed instead.
490
+ * @param node
389
491
  */
390
492
  function isNodeShadowed(node) {
391
493
  return !isUndefined(getNodeOwnerKey(node));
@@ -442,7 +544,7 @@ function isNodeSlotted(host, node) {
442
544
  // have different owner key. for slotted elements, this is possible
443
545
  // if the parent happens to be a slot.
444
546
  if (isSlotElement(parent)) {
445
- /**
547
+ /*
446
548
  * the slot parent might be allocated inside another slot, think of:
447
549
  * <x-root> (<--- root element)
448
550
  * <x-parent> (<--- own by x-root)
@@ -597,7 +699,7 @@ function getFilteredChildNodes(node) {
597
699
  const resolver = getShadowRootResolver(getShadowRoot(node));
598
700
  // Typescript is inferring the wrong function type for this particular
599
701
  // overloaded method: https://github.com/Microsoft/TypeScript/issues/27972
600
- // @ts-ignore type-mismatch
702
+ // @ts-expect-error type-mismatch
601
703
  return ArrayReduce.call(slots, (seed, slot) => {
602
704
  if (resolver === getShadowRootResolver(slot)) {
603
705
  ArrayPush.apply(seed, getFilteredSlotAssignedNodes(slot));
@@ -1066,6 +1168,7 @@ function createStaticHTMLCollection(items) {
1066
1168
  * based on the light-dom slotting mechanism. This applies to synthetic slot elements
1067
1169
  * and elements with shadow dom attached to them. It doesn't apply to native slot elements
1068
1170
  * because we don't want to patch the children getters for those elements.
1171
+ * @param node
1069
1172
  */
1070
1173
  function hasMountedChildren(node) {
1071
1174
  return isSyntheticSlotElement(node) || isSyntheticShadowHost(node);
@@ -1200,10 +1303,10 @@ const getDocumentOrRootNode = !isUndefined(nativeGetRootNode)
1200
1303
  * Get the shadow root
1201
1304
  * getNodeOwner() returns the host element that owns the given node
1202
1305
  * Note: getNodeOwner() returns null when running in native-shadow mode.
1203
- * Fallback to using the native getRootNode() to discover the root node.
1204
- * This is because, it is not possible to inspect the node and decide if it is part
1205
- * of a native shadow or the synthetic shadow.
1206
- * @param {Node} node
1306
+ * Fallback to using the native getRootNode() to discover the root node.
1307
+ * This is because, it is not possible to inspect the node and decide if it is part
1308
+ * of a native shadow or the synthetic shadow.
1309
+ * @param node
1207
1310
  */
1208
1311
  function getNearestRoot(node) {
1209
1312
  const ownerNode = getNodeOwner(node);
@@ -1221,17 +1324,17 @@ function getNearestRoot(node) {
1221
1324
  *
1222
1325
  * If looking for a shadow root of a node by calling `node.getRootNode({composed: false})` or `node.getRootNode()`,
1223
1326
  *
1224
- * 1. Try to identify the host element that owns the give node.
1225
- * i. Identify the shadow tree that the node belongs to
1226
- * ii. If the node belongs to a shadow tree created by engine, return the shadowRoot of the host element that owns the shadow tree
1227
- * 2. The host identification logic returns null in two cases:
1228
- * i. The node does not belong to a shadow tree created by engine
1229
- * ii. The engine is running in native shadow dom mode
1230
- * If so, use the original Node.prototype.getRootNode to fetch the root node(or manually climb up the dom tree where getRootNode() is unsupported)
1327
+ * 1. Try to identify the host element that owns the give node.
1328
+ * i. Identify the shadow tree that the node belongs to
1329
+ * ii. If the node belongs to a shadow tree created by engine, return the shadowRoot of the host element that owns the shadow tree
1330
+ * 2. The host identification logic returns null in two cases:
1331
+ * i. The node does not belong to a shadow tree created by engine
1332
+ * ii. The engine is running in native shadow dom mode
1333
+ * If so, use the original Node.prototype.getRootNode to fetch the root node(or manually climb up the dom tree where getRootNode() is unsupported)
1231
1334
  *
1232
1335
  * _Spec_: https://dom.spec.whatwg.org/#dom-node-getrootnode
1233
- *
1234
- **/
1336
+ * @param options
1337
+ */
1235
1338
  function getRootNodePatched(options) {
1236
1339
  const composed = isUndefined(options) ? false : !!options.composed;
1237
1340
  return isTrue(composed) ? getDocumentOrRootNode.call(this, options) : getNearestRoot(this);
@@ -1483,6 +1586,7 @@ function getEventMap(elm) {
1483
1586
  * Events dispatched on shadow roots actually end up being dispatched on their hosts. This means that the event.target
1484
1587
  * property of events dispatched on shadow roots always resolve to their host. This function understands this
1485
1588
  * abstraction and properly returns a reference to the shadow root when appropriate.
1589
+ * @param event
1486
1590
  */
1487
1591
  function getActualTarget(event) {
1488
1592
  return eventToShadowRootMap.get(event) ?? eventTargetGetter.call(event);
@@ -1914,7 +2018,7 @@ const NodePatchDescriptors = {
1914
2018
  value(evt) {
1915
2019
  eventToShadowRootMap.set(evt, this);
1916
2020
  // Typescript does not like it when you treat the `arguments` object as an array
1917
- // @ts-ignore type-mismatch
2021
+ // @ts-expect-error type-mismatch
1918
2022
  return dispatchEvent.apply(getHost(this), arguments);
1919
2023
  },
1920
2024
  },
@@ -2290,7 +2394,7 @@ function retarget(refNode, path) {
2290
2394
  rootIdx = refNodePath.indexOf(root);
2291
2395
  lastRoot = root;
2292
2396
  }
2293
- if (!isSyntheticShadowRoot(root) || (!isUndefined(rootIdx) && rootIdx > -1)) {
2397
+ if (!isUndefined(rootIdx) && rootIdx > -1) {
2294
2398
  return ancestor;
2295
2399
  }
2296
2400
  }
@@ -2536,7 +2640,7 @@ function setNodeObservers(node, observers) {
2536
2640
  }
2537
2641
  /**
2538
2642
  * Retarget the mutation record's target value to its shadowRoot
2539
- * @param {MutationRecord} originalRecord
2643
+ * @param originalRecord
2540
2644
  */
2541
2645
  function retargetMutationRecord(originalRecord) {
2542
2646
  const { addedNodes, removedNodes, target, type } = originalRecord;
@@ -2576,8 +2680,8 @@ function retargetMutationRecord(originalRecord) {
2576
2680
  /**
2577
2681
  * Utility to identify if a target node is being observed by the given observer
2578
2682
  * Start at the current node, if the observer is registered to observe the current node, the mutation qualifies
2579
- * @param {MutationObserver} observer
2580
- * @param {Node} target
2683
+ * @param observer
2684
+ * @param target
2581
2685
  */
2582
2686
  function isQualifiedObserver(observer, target) {
2583
2687
  let parentNode = target;
@@ -2598,8 +2702,8 @@ function isQualifiedObserver(observer, target) {
2598
2702
  * The key logic here is to determine if a given observer has been registered to observe any nodes
2599
2703
  * between the target node of a mutation record to the target's root node.
2600
2704
  * This function also retargets records when mutations occur directly under the shadow root
2601
- * @param {MutationRecords[]} mutations
2602
- * @param {MutationObserver} observer
2705
+ * @param mutations
2706
+ * @param observer
2603
2707
  */
2604
2708
  function filterMutationRecords(mutations, observer) {
2605
2709
  const result = [];
@@ -2681,7 +2785,7 @@ function getWrappedCallback(callback) {
2681
2785
  * Patched MutationObserver constructor.
2682
2786
  * 1. Wrap the callback to filter out MutationRecords based on dom ownership
2683
2787
  * 2. Add a property field to track all observed targets of the observer instance
2684
- * @param {MutationCallback} callback
2788
+ * @param callback
2685
2789
  */
2686
2790
  function PatchedMutationObserver(callback) {
2687
2791
  const wrappedCallback = getWrappedCallback(callback);
@@ -2708,8 +2812,8 @@ function patchedDisconnect() {
2708
2812
  /**
2709
2813
  * A single mutation observer can observe multiple nodes(target).
2710
2814
  * Maintain a list of all targets that the observer chooses to observe
2711
- * @param {Node} target
2712
- * @param {Object} options
2815
+ * @param target
2816
+ * @param options
2713
2817
  */
2714
2818
  function patchedObserve(target, options) {
2715
2819
  let targetObservers = getNodeObservers(target);
@@ -2763,9 +2867,14 @@ defineProperty(window, 'MutationObserver', {
2763
2867
  function patchedAddEventListener(type, listener, optionsOrCapture) {
2764
2868
  if (isSyntheticShadowHost(this)) {
2765
2869
  // Typescript does not like it when you treat the `arguments` object as an array
2766
- // @ts-ignore type-mismatch
2870
+ // @ts-expect-error type-mismatch
2767
2871
  return addCustomElementEventListener.apply(this, arguments);
2768
2872
  }
2873
+ if (this instanceof _Node && isInstanceOfNativeShadowRoot(this.getRootNode())) {
2874
+ // Typescript does not like it when you treat the `arguments` object as an array
2875
+ // @ts-expect-error type-mismatch
2876
+ return addEventListener.apply(this, arguments);
2877
+ }
2769
2878
  if (arguments.length < 2) {
2770
2879
  // Slow path, unlikely to be called frequently. We expect modern browsers to throw:
2771
2880
  // https://googlechrome.github.io/samples/event-listeners-mandatory-arguments/
@@ -2774,7 +2883,7 @@ function patchedAddEventListener(type, listener, optionsOrCapture) {
2774
2883
  args[1] = getEventListenerWrapper(args[1]);
2775
2884
  }
2776
2885
  // Ignore types because we're passing through to native method
2777
- // @ts-ignore type-mismatch
2886
+ // @ts-expect-error type-mismatch
2778
2887
  return addEventListener.apply(this, args);
2779
2888
  }
2780
2889
  // Fast path. This function is optimized to avoid ArraySlice because addEventListener is called
@@ -2786,7 +2895,7 @@ function patchedAddEventListener(type, listener, optionsOrCapture) {
2786
2895
  function patchedRemoveEventListener(_type, _listener, _optionsOrCapture) {
2787
2896
  if (isSyntheticShadowHost(this)) {
2788
2897
  // Typescript does not like it when you treat the `arguments` object as an array
2789
- // @ts-ignore type-mismatch
2898
+ // @ts-expect-error type-mismatch
2790
2899
  return removeCustomElementEventListener.apply(this, arguments);
2791
2900
  }
2792
2901
  const args = ArraySlice.call(arguments);
@@ -2794,11 +2903,11 @@ function patchedRemoveEventListener(_type, _listener, _optionsOrCapture) {
2794
2903
  args[1] = getEventListenerWrapper(args[1]);
2795
2904
  }
2796
2905
  // Ignore types because we're passing through to native method
2797
- // @ts-ignore type-mismatch
2906
+ // @ts-expect-error type-mismatch
2798
2907
  removeEventListener.apply(this, args);
2799
2908
  // Account for listeners that were added before this polyfill was applied
2800
2909
  // Typescript does not like it when you treat the `arguments` object as an array
2801
- // @ts-ignore type-mismatch
2910
+ // @ts-expect-error type-mismatch
2802
2911
  removeEventListener.apply(this, arguments);
2803
2912
  }
2804
2913
  defineProperties(eventTargetPrototype, {
@@ -3022,7 +3131,7 @@ function getFilteredSlotFlattenNodes(slot) {
3022
3131
  const childNodes = arrayFromCollection(childNodesGetter.call(slot));
3023
3132
  // Typescript is inferring the wrong function type for this particular
3024
3133
  // overloaded method: https://github.com/Microsoft/TypeScript/issues/27972
3025
- // @ts-ignore type-mismatch
3134
+ // @ts-expect-error type-mismatch
3026
3135
  return ArrayReduce.call(childNodes, (seed, child) => {
3027
3136
  if (child instanceof Element && isSlotElement(child)) {
3028
3137
  ArrayPush.apply(seed, getFilteredSlotFlattenNodes(child));
@@ -3047,9 +3156,8 @@ function assignedSlotGetterPatched() {
3047
3156
  }
3048
3157
  /**
3049
3158
  * The node is assigned to a slot if:
3050
- * - it has a parent and its parent is a slot element
3051
- * - and if the slot owner key is different than the node owner key.
3052
- *
3159
+ * - it has a parent and its parent is a slot element
3160
+ * - and if the slot owner key is different than the node owner key.
3053
3161
  * When the slot and the slotted node are 2 different shadow trees, the owner keys will be
3054
3162
  * different. When the slot is in a shadow tree and the slotted content is a light DOM node,
3055
3163
  * the light DOM node doesn't have an owner key and therefor the slot owner key will be
@@ -3164,6 +3272,8 @@ defineProperties(Text.prototype, {
3164
3272
  /**
3165
3273
  * This methods filters out elements that are not in the same shadow root of context.
3166
3274
  * It does not enforce shadow dom semantics if $context is not managed by LWC
3275
+ * @param context
3276
+ * @param unfilteredNodes
3167
3277
  */
3168
3278
  function getNonPatchedFilteredArrayOfNodes(context, unfilteredNodes) {
3169
3279
  let filtered;
@@ -3575,7 +3685,7 @@ function hostElementFocus() {
3575
3685
  // observable differences for component authors between synthetic and native.
3576
3686
  const focusable = querySelector.call(this, FocusableSelector);
3577
3687
  if (!isNull(focusable)) {
3578
- // @ts-ignore type-mismatch
3688
+ // @ts-expect-error type-mismatch
3579
3689
  focusable.focus.apply(focusable, arguments);
3580
3690
  }
3581
3691
  return;
@@ -3591,7 +3701,7 @@ function hostElementFocus() {
3591
3701
  let didFocus = false;
3592
3702
  while (!didFocus && focusables.length !== 0) {
3593
3703
  const focusable = focusables.shift();
3594
- // @ts-ignore type-mismatch
3704
+ // @ts-expect-error type-mismatch
3595
3705
  focusable.focus.apply(focusable, arguments);
3596
3706
  // Get the root node of the current focusable in case it was slotted.
3597
3707
  const currentRootNode = focusable.getRootNode();
@@ -3872,6 +3982,7 @@ function tabIndexGetterPatched() {
3872
3982
  }
3873
3983
  /**
3874
3984
  * This method only applies to elements with a shadow attached to them
3985
+ * @param value
3875
3986
  */
3876
3987
  function tabIndexSetterPatched(value) {
3877
3988
  // This tabIndex setter might be confusing unless it is understood that HTML
@@ -3953,7 +4064,7 @@ function focusPatched() {
3953
4064
  return;
3954
4065
  }
3955
4066
  // Typescript does not like it when you treat the `arguments` object as an array
3956
- // @ts-ignore type-mismatch
4067
+ // @ts-expect-error type-mismatch
3957
4068
  focus.apply(this, arguments);
3958
4069
  // Restore state by enabling if originally enabled
3959
4070
  if (originallyEnabled) {
@@ -3993,7 +4104,7 @@ defineProperties(HTMLElement.prototype, {
3993
4104
  focus: {
3994
4105
  value() {
3995
4106
  // Typescript does not like it when you treat the `arguments` object as an array
3996
- // @ts-ignore type-mismatch
4107
+ // @ts-expect-error type-mismatch
3997
4108
  focusPatched.apply(this, arguments);
3998
4109
  },
3999
4110
  enumerable: true,
@@ -4052,13 +4163,10 @@ function setShadowToken(node, shadowToken) {
4052
4163
  }
4053
4164
  /**
4054
4165
  * Patching Element.prototype.$shadowToken$ to mark elements a portal:
4055
- *
4056
- * - we use a property to allow engines to set a custom attribute that should be
4057
- * placed into the element to sandbox the css rules defined for the template.
4058
- *
4059
- * - this custom attribute must be unique.
4060
- *
4061
- **/
4166
+ * - we use a property to allow engines to set a custom attribute that should be
4167
+ * placed into the element to sandbox the css rules defined for the template.
4168
+ * - this custom attribute must be unique.
4169
+ */
4062
4170
  defineProperty(Element.prototype, KEY__SHADOW_TOKEN, {
4063
4171
  set(shadowToken) {
4064
4172
  const oldShadowToken = this[KEY__SHADOW_TOKEN_PRIVATE];
@@ -4113,7 +4221,7 @@ function setLegacyShadowToken(node, shadowToken) {
4113
4221
  /**
4114
4222
  * Patching Element.prototype.$legacyShadowToken$ to mark elements a portal:
4115
4223
  * Same as $shadowToken$ but for legacy CSS scope tokens.
4116
- **/
4224
+ */
4117
4225
  defineProperty(Element.prototype, KEY__LEGACY_SHADOW_TOKEN, {
4118
4226
  set(shadowToken) {
4119
4227
  const oldShadowToken = this[KEY__LEGACY_SHADOW_TOKEN_PRIVATE];
@@ -4227,18 +4335,14 @@ function markElementAsPortal(elm) {
4227
4335
  }
4228
4336
  /**
4229
4337
  * Patching Element.prototype.$domManual$ to mark elements as portal:
4230
- *
4231
- * - we use a property to allow engines to signal that a particular element in
4232
- * a shadow supports manual insertion of child nodes.
4233
- *
4234
- * - this signal comes as a boolean value, and we use it to install the MO instance
4235
- * onto the element, to propagate the $ownerKey$ and $shadowToken$ to all new
4236
- * child nodes.
4237
- *
4238
- * - at the moment, there is no way to undo this operation, once the element is
4239
- * marked as $domManual$, setting it to false does nothing.
4240
- *
4241
- **/
4338
+ * - we use a property to allow engines to signal that a particular element in
4339
+ * a shadow supports manual insertion of child nodes.
4340
+ * - this signal comes as a boolean value, and we use it to install the MO instance
4341
+ * onto the element, to propagate the $ownerKey$ and $shadowToken$ to all new
4342
+ * child nodes.
4343
+ * - at the moment, there is no way to undo this operation, once the element is
4344
+ * marked as $domManual$, setting it to false does nothing.
4345
+ */
4242
4346
  // TODO [#1306]: rename this to $observerConnection$
4243
4347
  defineProperty(Element.prototype, '$domManual$', {
4244
4348
  set(v) {
@@ -4252,6 +4356,6 @@ defineProperty(Element.prototype, '$domManual$', {
4252
4356
  },
4253
4357
  configurable: true,
4254
4358
  });
4255
- /** version: 6.2.0 */
4359
+ /** version: 6.3.0 */
4256
4360
  }
4257
4361
  //# sourceMappingURL=index.cjs.js.map