@lwc/synthetic-shadow 6.3.4 → 6.4.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/env/node.d.ts +2 -1
- package/dist/index.cjs.js +23 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +23 -8
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
@@ -208,7 +208,7 @@ const KEY__LEGACY_SHADOW_TOKEN_PRIVATE = '$$LegacyShadowTokenKey$$';
|
|
208
208
|
const KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
|
209
209
|
const KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';
|
210
210
|
const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
|
211
|
-
/** version: 6.
|
211
|
+
/** version: 6.4.0 */
|
212
212
|
|
213
213
|
/**
|
214
214
|
* Copyright (c) 2024 Salesforce, Inc.
|
@@ -216,7 +216,7 @@ const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
|
|
216
216
|
if (!globalThis.lwcRuntimeFlags) {
|
217
217
|
Object.defineProperty(globalThis, 'lwcRuntimeFlags', { value: create(null) });
|
218
218
|
}
|
219
|
-
/** version: 6.
|
219
|
+
/** version: 6.4.0 */
|
220
220
|
|
221
221
|
/*
|
222
222
|
* Copyright (c) 2018, salesforce.com, inc.
|
@@ -239,6 +239,7 @@ const ownerDocumentGetter = getOwnPropertyDescriptor(nodePrototype, 'ownerDocume
|
|
239
239
|
const parentElementGetter = getOwnPropertyDescriptor(nodePrototype, 'parentElement').get;
|
240
240
|
const textContextSetter = getOwnPropertyDescriptor(nodePrototype, 'textContent').set;
|
241
241
|
const childNodesGetter = getOwnPropertyDescriptor(nodePrototype, 'childNodes').get;
|
242
|
+
const nextSiblingGetter = getOwnPropertyDescriptor(nodePrototype, 'nextSibling').get;
|
242
243
|
const isConnected = hasOwnProperty.call(nodePrototype, 'isConnected')
|
243
244
|
? getOwnPropertyDescriptor(nodePrototype, 'isConnected').get
|
244
245
|
: function () {
|
@@ -425,6 +426,8 @@ function getNodeNearestOwnerKey(node) {
|
|
425
426
|
return hostKey;
|
426
427
|
}
|
427
428
|
host = parentNodeGetter.call(host);
|
429
|
+
// Elements slotted from top level light DOM into synthetic shadow
|
430
|
+
// reach the slot tag from the shadow element first
|
428
431
|
if (!isNull(host) && isSyntheticSlotElement(host)) {
|
429
432
|
return undefined;
|
430
433
|
}
|
@@ -1225,7 +1228,11 @@ function cloneNodePatched(deep) {
|
|
1225
1228
|
function childNodesGetterPatched() {
|
1226
1229
|
if (isSyntheticShadowHost(this)) {
|
1227
1230
|
const owner = getNodeOwner(this);
|
1228
|
-
const
|
1231
|
+
const filteredChildNodes = getFilteredChildNodes(this);
|
1232
|
+
// No need to filter by owner for non-shadowed nodes
|
1233
|
+
const childNodes = isNull(owner)
|
1234
|
+
? filteredChildNodes
|
1235
|
+
: getAllMatches(owner, filteredChildNodes);
|
1229
1236
|
return createStaticNodeList(childNodes);
|
1230
1237
|
}
|
1231
1238
|
// nothing to do here since this does not have a synthetic shadow attached to it
|
@@ -3354,7 +3361,11 @@ function shadowRootGetterPatched() {
|
|
3354
3361
|
}
|
3355
3362
|
function childrenGetterPatched() {
|
3356
3363
|
const owner = getNodeOwner(this);
|
3357
|
-
const
|
3364
|
+
const filteredChildNodes = getFilteredChildNodes(this);
|
3365
|
+
// No need to filter by owner for non-shadowed nodes
|
3366
|
+
const childNodes = isNull(owner)
|
3367
|
+
? filteredChildNodes
|
3368
|
+
: getAllMatches(owner, filteredChildNodes);
|
3358
3369
|
return createStaticHTMLCollection(ArrayFilter.call(childNodes, (node) => node instanceof Element));
|
3359
3370
|
}
|
3360
3371
|
function childElementCountGetterPatched() {
|
@@ -4190,9 +4201,13 @@ defineProperty(Element.prototype, KEY__SHADOW_TOKEN, {
|
|
4190
4201
|
});
|
4191
4202
|
function recursivelySetShadowResolver(node, fn) {
|
4192
4203
|
node[KEY__SHADOW_RESOLVER] = fn;
|
4193
|
-
|
4194
|
-
|
4195
|
-
|
4204
|
+
// Recurse using firstChild/nextSibling because browsers use a linked list under the hood to
|
4205
|
+
// represent the DOM, so childNodes/children would cause an unnecessary array allocation.
|
4206
|
+
// https://viethung.space/blog/2020/09/01/Browser-from-Scratch-DOM-API/#Choosing-DOM-tree-data-structure
|
4207
|
+
let child = firstChildGetter.call(node);
|
4208
|
+
while (!isNull(child)) {
|
4209
|
+
recursivelySetShadowResolver(child, fn);
|
4210
|
+
child = nextSiblingGetter.call(child);
|
4196
4211
|
}
|
4197
4212
|
}
|
4198
4213
|
defineProperty(Element.prototype, KEY__SHADOW_STATIC, {
|
@@ -4361,6 +4376,6 @@ defineProperty(Element.prototype, '$domManual$', {
|
|
4361
4376
|
},
|
4362
4377
|
configurable: true,
|
4363
4378
|
});
|
4364
|
-
/** version: 6.
|
4379
|
+
/** version: 6.4.0 */
|
4365
4380
|
}
|
4366
4381
|
//# sourceMappingURL=index.js.map
|