@lwc/synthetic-shadow 5.0.8 → 5.0.10

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.
package/dist/index.js CHANGED
@@ -113,7 +113,7 @@ const KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$';
113
113
  const KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
114
114
  const KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';
115
115
  const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
116
- /** version: 5.0.8 */
116
+ /** version: 5.0.10 */
117
117
 
118
118
  /**
119
119
  * Copyright (C) 2023 salesforce.com, inc.
@@ -122,7 +122,7 @@ const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
122
122
  if (!_globalThis.lwcRuntimeFlags) {
123
123
  Object.defineProperty(_globalThis, 'lwcRuntimeFlags', { value: create(null) });
124
124
  }
125
- /** version: 5.0.8 */
125
+ /** version: 5.0.10 */
126
126
 
127
127
  /*
128
128
  * Copyright (c) 2018, salesforce.com, inc.
@@ -281,54 +281,6 @@ const MutationObserverObserve = MO.prototype.observe;
281
281
  const NativeShadowRoot = ShadowRoot;
282
282
  const isInstanceOfNativeShadowRoot = (node) => node instanceof NativeShadowRoot;
283
283
 
284
- /*
285
- * Copyright (c) 2018, salesforce.com, inc.
286
- * All rights reserved.
287
- * SPDX-License-Identifier: MIT
288
- * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
289
- */
290
- // Helpful for tests running with jsdom
291
- function getOwnerDocument(node) {
292
- const doc = ownerDocumentGetter.call(node);
293
- // if doc is null, it means `this` is actually a document instance
294
- return doc === null ? node : doc;
295
- }
296
- function getOwnerWindow(node) {
297
- const doc = getOwnerDocument(node);
298
- const win = defaultViewGetter.call(doc);
299
- if (win === null) {
300
- // this method should never be called with a node that is not part
301
- // of a qualifying connected node.
302
- throw new TypeError();
303
- }
304
- return win;
305
- }
306
- let skipGlobalPatching;
307
- // Note: we deviate from native shadow here, but are not fixing
308
- // due to backwards compat: https://github.com/salesforce/lwc/pull/3103
309
- function isGlobalPatchingSkipped(node) {
310
- // we lazily compute this value instead of doing it during evaluation, this helps
311
- // for apps that are setting this after the engine code is evaluated.
312
- if (isUndefined(skipGlobalPatching)) {
313
- const ownerDocument = getOwnerDocument(node);
314
- skipGlobalPatching =
315
- ownerDocument.body &&
316
- getAttribute.call(ownerDocument.body, 'data-global-patching-bypass') ===
317
- 'temporary-bypass';
318
- }
319
- return isTrue(skipGlobalPatching);
320
- }
321
- function arrayFromCollection(collection) {
322
- const size = collection.length;
323
- const cloned = [];
324
- if (size > 0) {
325
- for (let i = 0; i < size; i++) {
326
- cloned[i] = collection[i];
327
- }
328
- }
329
- return cloned;
330
- }
331
-
332
284
  /*
333
285
  * Copyright (c) 2023, Salesforce.com, inc.
334
286
  * All rights reserved.
@@ -2201,6 +2153,57 @@ defineProperty(SyntheticShadowRoot, Symbol.hasInstance, {
2201
2153
  },
2202
2154
  });
2203
2155
 
2156
+ /*
2157
+ * Copyright (c) 2018, salesforce.com, inc.
2158
+ * All rights reserved.
2159
+ * SPDX-License-Identifier: MIT
2160
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
2161
+ */
2162
+ function isSyntheticOrNativeShadowRoot(node) {
2163
+ return isSyntheticShadowRoot(node) || isInstanceOfNativeShadowRoot(node);
2164
+ }
2165
+ // Helpful for tests running with jsdom
2166
+ function getOwnerDocument(node) {
2167
+ const doc = ownerDocumentGetter.call(node);
2168
+ // if doc is null, it means `this` is actually a document instance
2169
+ return doc === null ? node : doc;
2170
+ }
2171
+ function getOwnerWindow(node) {
2172
+ const doc = getOwnerDocument(node);
2173
+ const win = defaultViewGetter.call(doc);
2174
+ if (win === null) {
2175
+ // this method should never be called with a node that is not part
2176
+ // of a qualifying connected node.
2177
+ throw new TypeError();
2178
+ }
2179
+ return win;
2180
+ }
2181
+ let skipGlobalPatching;
2182
+ // Note: we deviate from native shadow here, but are not fixing
2183
+ // due to backwards compat: https://github.com/salesforce/lwc/pull/3103
2184
+ function isGlobalPatchingSkipped(node) {
2185
+ // we lazily compute this value instead of doing it during evaluation, this helps
2186
+ // for apps that are setting this after the engine code is evaluated.
2187
+ if (isUndefined(skipGlobalPatching)) {
2188
+ const ownerDocument = getOwnerDocument(node);
2189
+ skipGlobalPatching =
2190
+ ownerDocument.body &&
2191
+ getAttribute.call(ownerDocument.body, 'data-global-patching-bypass') ===
2192
+ 'temporary-bypass';
2193
+ }
2194
+ return isTrue(skipGlobalPatching);
2195
+ }
2196
+ function arrayFromCollection(collection) {
2197
+ const size = collection.length;
2198
+ const cloned = [];
2199
+ if (size > 0) {
2200
+ for (let i = 0; i < size; i++) {
2201
+ cloned[i] = collection[i];
2202
+ }
2203
+ }
2204
+ return cloned;
2205
+ }
2206
+
2204
2207
  /*
2205
2208
  * Copyright (c) 2018, salesforce.com, inc.
2206
2209
  * All rights reserved.
@@ -2240,8 +2243,7 @@ function pathComposer(startNode, composed) {
2240
2243
  current = current.parentNode;
2241
2244
  }
2242
2245
  }
2243
- else if ((isSyntheticShadowRoot(current) || isInstanceOfNativeShadowRoot(current)) &&
2244
- (composed || current !== startRoot)) {
2246
+ else if (isSyntheticOrNativeShadowRoot(current) && (composed || current !== startRoot)) {
2245
2247
  current = current.host;
2246
2248
  }
2247
2249
  else if (current instanceof _Node) {
@@ -2292,11 +2294,16 @@ function retarget(refNode, path) {
2292
2294
  for (let i = 0, ancestor, lastRoot, root, rootIdx; i < p$.length; i++) {
2293
2295
  ancestor = p$[i];
2294
2296
  root = ancestor instanceof Window ? ancestor : ancestor.getRootNode();
2297
+ // Retarget to ancestor if ancestor is not shadowed
2298
+ if (!isSyntheticOrNativeShadowRoot(root)) {
2299
+ return ancestor;
2300
+ }
2295
2301
  if (root !== lastRoot) {
2296
2302
  rootIdx = refNodePath.indexOf(root);
2297
2303
  lastRoot = root;
2298
2304
  }
2299
- if (!isSyntheticShadowRoot(root) || (!isUndefined(rootIdx) && rootIdx > -1)) {
2305
+ // Retarget to ancestor if ancestor is shadowed by refNode's shadow root
2306
+ if (!isUndefined(rootIdx) && rootIdx > -1) {
2300
2307
  return ancestor;
2301
2308
  }
2302
2309
  }
@@ -2772,6 +2779,11 @@ function patchedAddEventListener(type, listener, optionsOrCapture) {
2772
2779
  // @ts-ignore type-mismatch
2773
2780
  return addCustomElementEventListener.apply(this, arguments);
2774
2781
  }
2782
+ if (this instanceof _Node && isInstanceOfNativeShadowRoot(this.getRootNode())) {
2783
+ // Typescript does not like it when you treat the `arguments` object as an array
2784
+ // @ts-expect-error type-mismatch
2785
+ return addEventListener.apply(this, arguments);
2786
+ }
2775
2787
  if (arguments.length < 2) {
2776
2788
  // Slow path, unlikely to be called frequently. We expect modern browsers to throw:
2777
2789
  // https://googlechrome.github.io/samples/event-listeners-mandatory-arguments/
@@ -4258,5 +4270,5 @@ defineProperty(Element.prototype, '$domManual$', {
4258
4270
  },
4259
4271
  configurable: true,
4260
4272
  });
4261
- /** version: 5.0.8 */
4273
+ /** version: 5.0.10 */
4262
4274
  //# sourceMappingURL=index.js.map