@lwc/synthetic-shadow 3.1.2 → 4.0.0-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/env/shadow-root.d.ts +0 -1
- package/dist/env/slot.d.ts +2 -2
- package/dist/index.cjs.js +17 -271
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +17 -271
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/polyfills/HTMLSlotElement/detect.d.ts +0 -1
- package/dist/polyfills/HTMLSlotElement/main.d.ts +0 -1
- package/dist/polyfills/HTMLSlotElement/polyfill.d.ts +0 -1
- package/dist/polyfills/click-event-composed/detect.d.ts +0 -1
- package/dist/polyfills/click-event-composed/main.d.ts +0 -1
- package/dist/polyfills/click-event-composed/polyfill.d.ts +0 -1
- package/dist/polyfills/event-composed/detect.d.ts +0 -1
- package/dist/polyfills/event-composed/main.d.ts +0 -1
- package/dist/polyfills/event-composed/polyfill.d.ts +0 -1
package/dist/index.d.ts
CHANGED
@@ -7,11 +7,8 @@ import './env/document';
|
|
7
7
|
import './env/window';
|
8
8
|
import './env/mutation-observer';
|
9
9
|
import './env/shadow-root';
|
10
|
-
import './polyfills/HTMLSlotElement/main';
|
11
10
|
import './polyfills/document-shadow/main';
|
12
11
|
import './polyfills/shadow-root/main';
|
13
|
-
import './polyfills/click-event-composed/main';
|
14
|
-
import './polyfills/event-composed/main';
|
15
12
|
import './polyfills/custom-event-composed/main';
|
16
13
|
import './polyfills/clipboard-event-composed/main';
|
17
14
|
import './polyfills/mutation-observer/main';
|
package/dist/index.js
CHANGED
@@ -46,7 +46,6 @@ var assert = /*#__PURE__*/Object.freeze({
|
|
46
46
|
const { assign, create, defineProperties, defineProperty, freeze, getOwnPropertyDescriptor, getOwnPropertyNames, getPrototypeOf, hasOwnProperty, isFrozen, keys, seal, setPrototypeOf, } = Object;
|
47
47
|
const { isArray } = Array;
|
48
48
|
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;
|
49
|
-
const { charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, } = String.prototype;
|
50
49
|
function isUndefined(obj) {
|
51
50
|
return obj === undefined;
|
52
51
|
}
|
@@ -97,12 +96,11 @@ function toString(obj) {
|
|
97
96
|
const _globalThis = typeof globalThis === 'object' ? globalThis : window;
|
98
97
|
|
99
98
|
/*
|
100
|
-
* Copyright (c)
|
99
|
+
* Copyright (c) 2023, Salesforce.com, inc.
|
101
100
|
* All rights reserved.
|
102
101
|
* SPDX-License-Identifier: MIT
|
103
102
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
104
103
|
*/
|
105
|
-
const KEY__IS_NATIVE_SHADOW_ROOT_DEFINED = '$isNativeShadowRootDefined$';
|
106
104
|
const KEY__SHADOW_RESOLVER = '$shadowResolver$';
|
107
105
|
const KEY__SHADOW_RESOLVER_PRIVATE = '$$ShadowResolverKey$$';
|
108
106
|
const KEY__SHADOW_STATIC = '$shadowStaticNode$';
|
@@ -112,7 +110,7 @@ const KEY__SHADOW_TOKEN_PRIVATE = '$$ShadowTokenKey$$';
|
|
112
110
|
const KEY__SYNTHETIC_MODE = '$$lwc-synthetic-mode';
|
113
111
|
const KEY__NATIVE_GET_ELEMENT_BY_ID = '$nativeGetElementById$';
|
114
112
|
const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
|
115
|
-
/** version:
|
113
|
+
/** version: 4.0.0-alpha.0 */
|
116
114
|
|
117
115
|
/**
|
118
116
|
* Copyright (C) 2023 salesforce.com, inc.
|
@@ -121,7 +119,7 @@ const KEY__NATIVE_QUERY_SELECTOR_ALL = '$nativeQuerySelectorAll$';
|
|
121
119
|
if (!_globalThis.lwcRuntimeFlags) {
|
122
120
|
Object.defineProperty(_globalThis, 'lwcRuntimeFlags', { value: create(null) });
|
123
121
|
}
|
124
|
-
/** version:
|
122
|
+
/** version: 4.0.0-alpha.0 */
|
125
123
|
|
126
124
|
/*
|
127
125
|
* Copyright (c) 2018, salesforce.com, inc.
|
@@ -209,24 +207,13 @@ const assignedSlotGetter$1 = hasOwnProperty.call(Element.prototype, 'assignedSlo
|
|
209
207
|
: () => null;
|
210
208
|
|
211
209
|
/*
|
212
|
-
* Copyright (c)
|
210
|
+
* Copyright (c) 2023, Salesforce.com, inc.
|
213
211
|
* All rights reserved.
|
214
212
|
* SPDX-License-Identifier: MIT
|
215
213
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
216
214
|
*/
|
217
|
-
|
218
|
-
|
219
|
-
assignedNodes = HTMLSlotElement.prototype.assignedNodes;
|
220
|
-
assignedElements = HTMLSlotElement.prototype.assignedElements;
|
221
|
-
}
|
222
|
-
else {
|
223
|
-
assignedNodes = () => {
|
224
|
-
throw new TypeError("assignedNodes() is not supported in current browser. Load the @lwc/synthetic-shadow polyfill to start using <slot> elements in your Lightning Web Component's template");
|
225
|
-
};
|
226
|
-
assignedElements = () => {
|
227
|
-
throw new TypeError("assignedElements() is not supported in current browser. Load the @lwc/synthetic-shadow polyfill to start using <slot> elements in your Lightning Web Component's template");
|
228
|
-
};
|
229
|
-
}
|
215
|
+
const assignedNodes = HTMLSlotElement.prototype.assignedNodes;
|
216
|
+
const assignedElements = HTMLSlotElement.prototype.assignedElements;
|
230
217
|
|
231
218
|
/*
|
232
219
|
* Copyright (c) 2018, salesforce.com, inc.
|
@@ -282,79 +269,14 @@ const MO = MutationObserver;
|
|
282
269
|
const MutationObserverObserve = MO.prototype.observe;
|
283
270
|
|
284
271
|
/*
|
285
|
-
* Copyright (c)
|
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
|
-
let NativeShadowRoot = null;
|
291
|
-
if (typeof ShadowRoot !== 'undefined') {
|
292
|
-
NativeShadowRoot = ShadowRoot;
|
293
|
-
}
|
294
|
-
const isNativeShadowRootDefined = !isNull(NativeShadowRoot);
|
295
|
-
const isInstanceOfNativeShadowRoot = isNull(NativeShadowRoot)
|
296
|
-
? () => false
|
297
|
-
: (node) => node instanceof NativeShadowRoot;
|
298
|
-
|
299
|
-
/*
|
300
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
301
|
-
* All rights reserved.
|
302
|
-
* SPDX-License-Identifier: MIT
|
303
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
304
|
-
*/
|
305
|
-
function detect$2 () {
|
306
|
-
return typeof HTMLSlotElement === 'undefined';
|
307
|
-
}
|
308
|
-
|
309
|
-
/*
|
310
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
311
|
-
* All rights reserved.
|
312
|
-
* SPDX-License-Identifier: MIT
|
313
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
314
|
-
*/
|
315
|
-
const { createElement } = Document.prototype;
|
316
|
-
const CHAR_S = 115;
|
317
|
-
const CHAR_L = 108;
|
318
|
-
const CHAR_O = 111;
|
319
|
-
const CHAR_T = 116;
|
320
|
-
function apply$2() {
|
321
|
-
// IE11 does not have this element definition
|
322
|
-
// we don't care much about the construction phase, just the prototype
|
323
|
-
class HTMLSlotElement {
|
324
|
-
}
|
325
|
-
// prototype inheritance dance
|
326
|
-
setPrototypeOf(HTMLSlotElement, HTMLElement.constructor);
|
327
|
-
setPrototypeOf(HTMLSlotElement.prototype, HTMLElement.prototype);
|
328
|
-
Window.prototype.HTMLSlotElement = HTMLSlotElement;
|
329
|
-
// IE11 doesn't have HTMLSlotElement, in which case we
|
330
|
-
// need to patch Document.prototype.createElement to remap `slot`
|
331
|
-
// elements to the right prototype
|
332
|
-
defineProperty(Document.prototype, 'createElement', {
|
333
|
-
value: function (tagName, _options) {
|
334
|
-
const elm = createElement.apply(this, ArraySlice.call(arguments));
|
335
|
-
if (tagName.length === 4 &&
|
336
|
-
StringCharCodeAt.call(tagName, 0) === CHAR_S &&
|
337
|
-
StringCharCodeAt.call(tagName, 1) === CHAR_L &&
|
338
|
-
StringCharCodeAt.call(tagName, 2) === CHAR_O &&
|
339
|
-
StringCharCodeAt.call(tagName, 3) === CHAR_T) {
|
340
|
-
// the new element is the `slot`, resetting the proto chain
|
341
|
-
// the new newly created global HTMLSlotElement.prototype
|
342
|
-
setPrototypeOf(elm, HTMLSlotElement.prototype);
|
343
|
-
}
|
344
|
-
return elm;
|
345
|
-
},
|
346
|
-
});
|
347
|
-
}
|
348
|
-
|
349
|
-
/*
|
350
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
272
|
+
* Copyright (c) 2023, Salesforce.com, inc.
|
351
273
|
* All rights reserved.
|
352
274
|
* SPDX-License-Identifier: MIT
|
353
275
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
354
276
|
*/
|
355
|
-
|
356
|
-
|
357
|
-
|
277
|
+
// Capture the global `ShadowRoot` since synthetic shadow will override it later
|
278
|
+
const NativeShadowRoot = ShadowRoot;
|
279
|
+
const isInstanceOfNativeShadowRoot = (node) => node instanceof NativeShadowRoot;
|
358
280
|
|
359
281
|
/*
|
360
282
|
* Copyright (c) 2018, salesforce.com, inc.
|
@@ -405,12 +327,12 @@ function arrayFromCollection(collection) {
|
|
405
327
|
}
|
406
328
|
|
407
329
|
/*
|
408
|
-
* Copyright (c)
|
330
|
+
* Copyright (c) 2023, Salesforce.com, inc.
|
409
331
|
* All rights reserved.
|
410
332
|
* SPDX-License-Identifier: MIT
|
411
333
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
412
334
|
*/
|
413
|
-
const eventTargetPrototype =
|
335
|
+
const eventTargetPrototype = EventTarget.prototype;
|
414
336
|
const { addEventListener, dispatchEvent, removeEventListener } = eventTargetPrototype;
|
415
337
|
|
416
338
|
/*
|
@@ -1738,7 +1660,7 @@ function removeShadowRootEventListener(sr, type, listener, _options) {
|
|
1738
1660
|
}
|
1739
1661
|
|
1740
1662
|
/*
|
1741
|
-
* Copyright (c)
|
1663
|
+
* Copyright (c) 2023, Salesforce.com, inc.
|
1742
1664
|
* All rights reserved.
|
1743
1665
|
* SPDX-License-Identifier: MIT
|
1744
1666
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
@@ -1769,9 +1691,6 @@ defineProperty(_Node.prototype, KEY__SHADOW_RESOLVER, {
|
|
1769
1691
|
configurable: true,
|
1770
1692
|
enumerable: true,
|
1771
1693
|
});
|
1772
|
-
defineProperty(_globalThis, KEY__IS_NATIVE_SHADOW_ROOT_DEFINED, {
|
1773
|
-
value: isNativeShadowRootDefined,
|
1774
|
-
});
|
1775
1694
|
// The isUndefined check is because two copies of synthetic shadow may be loaded on the same page, and this
|
1776
1695
|
// would throw an error if we tried to redefine it. Plus the whole point is to expose the native method.
|
1777
1696
|
if (isUndefined(_globalThis[KEY__NATIVE_GET_ELEMENT_BY_ID])) {
|
@@ -2549,181 +2468,6 @@ Object.defineProperty(window, 'ShadowRoot', {
|
|
2549
2468
|
writable: true,
|
2550
2469
|
});
|
2551
2470
|
|
2552
|
-
/*
|
2553
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
2554
|
-
* All rights reserved.
|
2555
|
-
* SPDX-License-Identifier: MIT
|
2556
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
2557
|
-
*/
|
2558
|
-
const composedDescriptor = Object.getOwnPropertyDescriptor(Event.prototype, 'composed');
|
2559
|
-
function detect$1() {
|
2560
|
-
if (!composedDescriptor) {
|
2561
|
-
// No need to apply this polyfill if this client completely lacks
|
2562
|
-
// support for the composed property.
|
2563
|
-
return false;
|
2564
|
-
}
|
2565
|
-
// Assigning a throwaway click event here to suppress a ts error when we
|
2566
|
-
// pass clickEvent into the composed getter below. The error is:
|
2567
|
-
// [ts] Variable 'clickEvent' is used before being assigned.
|
2568
|
-
let clickEvent = new Event('click');
|
2569
|
-
const button = document.createElement('button');
|
2570
|
-
button.addEventListener('click', (event) => (clickEvent = event));
|
2571
|
-
button.click();
|
2572
|
-
return !composedDescriptor.get.call(clickEvent);
|
2573
|
-
}
|
2574
|
-
|
2575
|
-
/*
|
2576
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
2577
|
-
* All rights reserved.
|
2578
|
-
* SPDX-License-Identifier: MIT
|
2579
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
2580
|
-
*/
|
2581
|
-
const originalClickDescriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'click');
|
2582
|
-
function handleClick(event) {
|
2583
|
-
Object.defineProperty(event, 'composed', {
|
2584
|
-
configurable: true,
|
2585
|
-
enumerable: true,
|
2586
|
-
get() {
|
2587
|
-
return true;
|
2588
|
-
},
|
2589
|
-
});
|
2590
|
-
}
|
2591
|
-
function apply$1() {
|
2592
|
-
HTMLElement.prototype.click = function () {
|
2593
|
-
addEventListener.call(this, 'click', handleClick);
|
2594
|
-
try {
|
2595
|
-
originalClickDescriptor.value.call(this);
|
2596
|
-
}
|
2597
|
-
finally {
|
2598
|
-
removeEventListener.call(this, 'click', handleClick);
|
2599
|
-
}
|
2600
|
-
};
|
2601
|
-
}
|
2602
|
-
|
2603
|
-
/*
|
2604
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
2605
|
-
* All rights reserved.
|
2606
|
-
* SPDX-License-Identifier: MIT
|
2607
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
2608
|
-
*/
|
2609
|
-
if (detect$1()) {
|
2610
|
-
apply$1();
|
2611
|
-
}
|
2612
|
-
|
2613
|
-
/*
|
2614
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
2615
|
-
* All rights reserved.
|
2616
|
-
* SPDX-License-Identifier: MIT
|
2617
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
2618
|
-
*/
|
2619
|
-
function detect() {
|
2620
|
-
return new Event('test', { composed: true }).composed !== true;
|
2621
|
-
}
|
2622
|
-
|
2623
|
-
/*
|
2624
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
2625
|
-
* All rights reserved.
|
2626
|
-
* SPDX-License-Identifier: MIT
|
2627
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
2628
|
-
*/
|
2629
|
-
function apply() {
|
2630
|
-
// https://github.com/w3c/webcomponents/issues/513#issuecomment-224183937
|
2631
|
-
const composedEvents = assign(create(null), {
|
2632
|
-
beforeinput: 1,
|
2633
|
-
blur: 1,
|
2634
|
-
click: 1,
|
2635
|
-
compositionend: 1,
|
2636
|
-
compositionstart: 1,
|
2637
|
-
compositionupdate: 1,
|
2638
|
-
copy: 1,
|
2639
|
-
cut: 1,
|
2640
|
-
dblclick: 1,
|
2641
|
-
DOMActivate: 1,
|
2642
|
-
DOMFocusIn: 1,
|
2643
|
-
DOMFocusOut: 1,
|
2644
|
-
drag: 1,
|
2645
|
-
dragend: 1,
|
2646
|
-
dragenter: 1,
|
2647
|
-
dragleave: 1,
|
2648
|
-
dragover: 1,
|
2649
|
-
dragstart: 1,
|
2650
|
-
drop: 1,
|
2651
|
-
focus: 1,
|
2652
|
-
focusin: 1,
|
2653
|
-
focusout: 1,
|
2654
|
-
gotpointercapture: 1,
|
2655
|
-
input: 1,
|
2656
|
-
keydown: 1,
|
2657
|
-
keypress: 1,
|
2658
|
-
keyup: 1,
|
2659
|
-
lostpointercapture: 1,
|
2660
|
-
mousedown: 1,
|
2661
|
-
mouseenter: 1,
|
2662
|
-
mouseleave: 1,
|
2663
|
-
mousemove: 1,
|
2664
|
-
mouseout: 1,
|
2665
|
-
mouseover: 1,
|
2666
|
-
mouseup: 1,
|
2667
|
-
paste: 1,
|
2668
|
-
pointercancel: 1,
|
2669
|
-
pointerdown: 1,
|
2670
|
-
pointerenter: 1,
|
2671
|
-
pointerleave: 1,
|
2672
|
-
pointermove: 1,
|
2673
|
-
pointerout: 1,
|
2674
|
-
pointerover: 1,
|
2675
|
-
pointerup: 1,
|
2676
|
-
touchcancel: 1,
|
2677
|
-
touchend: 1,
|
2678
|
-
touchmove: 1,
|
2679
|
-
touchstart: 1,
|
2680
|
-
wheel: 1,
|
2681
|
-
});
|
2682
|
-
const EventConstructor = Event;
|
2683
|
-
// Patch Event constructor to add the composed property on events created via new Event.
|
2684
|
-
function PatchedEvent(type, eventInitDict) {
|
2685
|
-
const event = new EventConstructor(type, eventInitDict);
|
2686
|
-
const isComposed = !!(eventInitDict && eventInitDict.composed);
|
2687
|
-
Object.defineProperties(event, {
|
2688
|
-
composed: {
|
2689
|
-
get() {
|
2690
|
-
return isComposed;
|
2691
|
-
},
|
2692
|
-
configurable: true,
|
2693
|
-
enumerable: true,
|
2694
|
-
},
|
2695
|
-
});
|
2696
|
-
return event;
|
2697
|
-
}
|
2698
|
-
PatchedEvent.prototype = EventConstructor.prototype;
|
2699
|
-
PatchedEvent.AT_TARGET = EventConstructor.AT_TARGET;
|
2700
|
-
PatchedEvent.BUBBLING_PHASE = EventConstructor.BUBBLING_PHASE;
|
2701
|
-
PatchedEvent.CAPTURING_PHASE = EventConstructor.CAPTURING_PHASE;
|
2702
|
-
PatchedEvent.NONE = EventConstructor.NONE;
|
2703
|
-
window.Event = PatchedEvent;
|
2704
|
-
// Patch the Event prototype to add the composed property on user agent dispatched event.
|
2705
|
-
Object.defineProperties(Event.prototype, {
|
2706
|
-
composed: {
|
2707
|
-
get() {
|
2708
|
-
const { type } = this;
|
2709
|
-
return composedEvents[type] === 1;
|
2710
|
-
},
|
2711
|
-
configurable: true,
|
2712
|
-
enumerable: true,
|
2713
|
-
},
|
2714
|
-
});
|
2715
|
-
}
|
2716
|
-
|
2717
|
-
/*
|
2718
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
2719
|
-
* All rights reserved.
|
2720
|
-
* SPDX-License-Identifier: MIT
|
2721
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
2722
|
-
*/
|
2723
|
-
if (detect()) {
|
2724
|
-
apply();
|
2725
|
-
}
|
2726
|
-
|
2727
2471
|
/*
|
2728
2472
|
* Copyright (c) 2018, salesforce.com, inc.
|
2729
2473
|
* All rights reserved.
|
@@ -2749,11 +2493,13 @@ PatchedCustomEvent.prototype = CustomEventConstructor.prototype;
|
|
2749
2493
|
window.CustomEvent = PatchedCustomEvent;
|
2750
2494
|
|
2751
2495
|
/*
|
2752
|
-
* Copyright (c)
|
2496
|
+
* Copyright (c) 2023, Salesforce.com, inc.
|
2753
2497
|
* All rights reserved.
|
2754
2498
|
* SPDX-License-Identifier: MIT
|
2755
2499
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
2756
2500
|
*/
|
2501
|
+
// Note that ClipboardEvent is undefined in Jest/jsdom
|
2502
|
+
// See: https://github.com/jsdom/jsdom/issues/1568
|
2757
2503
|
if (typeof ClipboardEvent !== 'undefined') {
|
2758
2504
|
const isComposedType = assign(create(null), {
|
2759
2505
|
copy: 1,
|
@@ -4465,5 +4211,5 @@ defineProperty(Element.prototype, '$domManual$', {
|
|
4465
4211
|
},
|
4466
4212
|
configurable: true,
|
4467
4213
|
});
|
4468
|
-
/** version:
|
4214
|
+
/** version: 4.0.0-alpha.0 */
|
4469
4215
|
//# sourceMappingURL=index.js.map
|