@stencil/core 4.35.1-dev.1750455125.b359bb3 → 4.35.1-dev.1750655001.8b007e9
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/cli/index.cjs +1 -1
- package/cli/index.js +1 -1
- package/cli/package.json +1 -1
- package/compiler/package.json +1 -1
- package/compiler/stencil.js +4 -4
- package/dev-server/client/index.js +1 -1
- package/dev-server/client/package.json +1 -1
- package/dev-server/connector.html +2 -2
- package/dev-server/index.js +1 -1
- package/dev-server/package.json +1 -1
- package/dev-server/server-process.js +2 -2
- package/internal/app-data/package.json +1 -1
- package/internal/app-globals/package.json +1 -1
- package/internal/client/index.js +6 -150
- package/internal/client/package.json +1 -1
- package/internal/client/patch-browser.js +1 -1
- package/internal/hydrate/index.js +6 -150
- package/internal/hydrate/package.json +1 -1
- package/internal/hydrate/runner.js +35 -5
- package/internal/package.json +1 -1
- package/internal/testing/index.js +5 -149
- package/internal/testing/package.json +1 -1
- package/mock-doc/index.cjs +35 -5
- package/mock-doc/index.d.ts +16 -0
- package/mock-doc/index.js +35 -5
- package/mock-doc/package.json +1 -1
- package/package.json +1 -1
- package/screenshot/index.js +1 -1
- package/screenshot/package.json +1 -1
- package/screenshot/pixel-match.js +1 -1
- package/sys/node/index.js +8 -8
- package/sys/node/package.json +1 -1
- package/sys/node/worker.js +1 -1
- package/testing/index.js +1 -1
- package/testing/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Stencil Hydrate Platform v4.35.1-dev.
|
|
2
|
+
Stencil Hydrate Platform v4.35.1-dev.1750655001.8b007e9 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
@@ -411,19 +411,8 @@ var addSlotRelocateNode = (newChild, slotNode, prepend, position) => {
|
|
|
411
411
|
};
|
|
412
412
|
var getSlotName = (node) => typeof node["s-sn"] === "string" ? node["s-sn"] : node.nodeType === 1 && node.getAttribute("slot") || void 0;
|
|
413
413
|
function patchSlotNode(node) {
|
|
414
|
-
|
|
415
|
-
if (node.assignedElements || node.assignedNodes || !node["s-sr"]) {
|
|
416
|
-
console.log("\u274C patchSlotNode: already patched or not a slot reference");
|
|
417
|
-
return;
|
|
418
|
-
}
|
|
419
|
-
console.log("\u2705 patchSlotNode: proceeding with patching");
|
|
414
|
+
if (node.assignedElements || node.assignedNodes || !node["s-sr"]) return;
|
|
420
415
|
const assignedFactory = (elementsOnly) => (function(opts) {
|
|
421
|
-
var _a, _b;
|
|
422
|
-
console.log("\u{1F3ED} assignedFactory called:", {
|
|
423
|
-
elementsOnly,
|
|
424
|
-
slotName: this["s-sn"],
|
|
425
|
-
parentElement: (_b = (_a = this["s-cr"]) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.tagName
|
|
426
|
-
});
|
|
427
416
|
const toReturn = [];
|
|
428
417
|
const slotName = this["s-sn"];
|
|
429
418
|
if (opts == null ? void 0 : opts.flatten) {
|
|
@@ -435,30 +424,11 @@ function patchSlotNode(node) {
|
|
|
435
424
|
}
|
|
436
425
|
const parent = this["s-cr"].parentElement;
|
|
437
426
|
const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);
|
|
438
|
-
console.log("\u{1F50D} Processing slotted nodes:", {
|
|
439
|
-
count: slottedNodes.length,
|
|
440
|
-
nodes: Array.from(slottedNodes).map((n) => ({ tagName: n.tagName, nodeType: n.nodeType }))
|
|
441
|
-
});
|
|
442
427
|
slottedNodes.forEach((n) => {
|
|
443
|
-
console.log("\u{1F50D} Checking node:", {
|
|
444
|
-
tagName: n.tagName,
|
|
445
|
-
nodeType: n.nodeType,
|
|
446
|
-
slotName: getSlotName(n),
|
|
447
|
-
targetSlotName: slotName
|
|
448
|
-
});
|
|
449
428
|
if (slotName === getSlotName(n)) {
|
|
450
|
-
console.log("\u2705 Node matches slot, adding to return array");
|
|
451
429
|
toReturn.push(n);
|
|
452
|
-
patchSlottedShadowDomEvents(n, parent);
|
|
453
|
-
} else {
|
|
454
|
-
console.log("\u274C Node does not match slot");
|
|
455
430
|
}
|
|
456
431
|
});
|
|
457
|
-
console.log("\u{1F3ED} assignedFactory returning:", {
|
|
458
|
-
count: toReturn.length,
|
|
459
|
-
elementsOnly,
|
|
460
|
-
nodes: toReturn.map((n) => ({ tagName: n.tagName, nodeType: n.nodeType }))
|
|
461
|
-
});
|
|
462
432
|
if (elementsOnly) {
|
|
463
433
|
return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);
|
|
464
434
|
}
|
|
@@ -467,70 +437,6 @@ function patchSlotNode(node) {
|
|
|
467
437
|
node.assignedElements = assignedFactory(true);
|
|
468
438
|
node.assignedNodes = assignedFactory(false);
|
|
469
439
|
}
|
|
470
|
-
function patchSlottedShadowDomEvents(slottedNode, parentHost) {
|
|
471
|
-
var _a, _b, _c;
|
|
472
|
-
console.log("\u{1F50D} patchSlottedShadowDomEvents called:", {
|
|
473
|
-
slottedNode: slottedNode.tagName,
|
|
474
|
-
parentHost: parentHost.tagName,
|
|
475
|
-
nodeType: slottedNode.nodeType,
|
|
476
|
-
isElement: slottedNode.nodeType === 1 /* ElementNode */
|
|
477
|
-
});
|
|
478
|
-
if (slottedNode.nodeType !== 1 /* ElementNode */) {
|
|
479
|
-
console.log("\u274C Not an element node, skipping");
|
|
480
|
-
return;
|
|
481
|
-
}
|
|
482
|
-
const element = slottedNode;
|
|
483
|
-
console.log("\u{1F50D} Element details:", {
|
|
484
|
-
tagName: element.tagName,
|
|
485
|
-
hasHyphen: (_a = element.tagName) == null ? void 0 : _a.includes("-"),
|
|
486
|
-
hasShadowRoot: !!element.shadowRoot,
|
|
487
|
-
parentHasShadowRoot: !!parentHost.shadowRoot
|
|
488
|
-
});
|
|
489
|
-
if (!((_b = element.tagName) == null ? void 0 : _b.includes("-")) || !element.shadowRoot || parentHost.shadowRoot) {
|
|
490
|
-
console.log("\u274C Conditions not met for patching:", {
|
|
491
|
-
hasHyphen: (_c = element.tagName) == null ? void 0 : _c.includes("-"),
|
|
492
|
-
hasShadowRoot: !!element.shadowRoot,
|
|
493
|
-
parentHasShadowRoot: !!parentHost.shadowRoot
|
|
494
|
-
});
|
|
495
|
-
return;
|
|
496
|
-
}
|
|
497
|
-
if (element.__stencilSlotEventPatched) {
|
|
498
|
-
console.log("\u26A0\uFE0F Already patched, skipping");
|
|
499
|
-
return;
|
|
500
|
-
}
|
|
501
|
-
console.log("\u2705 Patching element:", element.tagName);
|
|
502
|
-
element.__stencilSlotEventPatched = true;
|
|
503
|
-
const originalDispatchEvent = element.dispatchEvent;
|
|
504
|
-
element.dispatchEvent = function(event) {
|
|
505
|
-
var _a2;
|
|
506
|
-
console.log("\u{1F3AF} dispatchEvent called:", {
|
|
507
|
-
type: event.type,
|
|
508
|
-
target: (_a2 = event.target) == null ? void 0 : _a2.tagName,
|
|
509
|
-
bubbles: event.bubbles,
|
|
510
|
-
composed: event.composed
|
|
511
|
-
});
|
|
512
|
-
if ((event.type === "focus" || event.type === "blur") && event.bubbles) {
|
|
513
|
-
console.log("\u{1F6D1} Intercepting focus/blur event, creating non-bubbling version");
|
|
514
|
-
const nonBubblingEvent = new event.constructor(event.type, {
|
|
515
|
-
...event,
|
|
516
|
-
bubbles: false,
|
|
517
|
-
composed: event.composed
|
|
518
|
-
});
|
|
519
|
-
Object.keys(event).forEach((key) => {
|
|
520
|
-
if (key !== "bubbles" && key !== "type") {
|
|
521
|
-
try {
|
|
522
|
-
nonBubblingEvent[key] = event[key];
|
|
523
|
-
} catch (e) {
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
});
|
|
527
|
-
console.log("\u{1F4E4} Dispatching non-bubbling event");
|
|
528
|
-
return originalDispatchEvent.call(this, nonBubblingEvent);
|
|
529
|
-
}
|
|
530
|
-
console.log("\u{1F4E4} Dispatching original event");
|
|
531
|
-
return originalDispatchEvent.call(this, event);
|
|
532
|
-
};
|
|
533
|
-
}
|
|
534
440
|
function dispatchSlotChangeEvent(elm) {
|
|
535
441
|
elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
|
|
536
442
|
}
|
|
@@ -875,67 +781,17 @@ var patchPreviousElementSibling = (element) => {
|
|
|
875
781
|
});
|
|
876
782
|
};
|
|
877
783
|
var patchParentNode = (node) => {
|
|
878
|
-
var _a;
|
|
879
784
|
if (!node || node.__parentNode) return;
|
|
880
785
|
patchHostOriginalAccessor("parentNode", node);
|
|
881
786
|
Object.defineProperty(node, "parentNode", {
|
|
882
787
|
get: function() {
|
|
883
|
-
var
|
|
884
|
-
return ((
|
|
788
|
+
var _a;
|
|
789
|
+
return ((_a = this["s-ol"]) == null ? void 0 : _a.parentNode) || this.__parentNode;
|
|
885
790
|
},
|
|
886
791
|
set: function(value) {
|
|
887
792
|
this.__parentNode = value;
|
|
888
793
|
}
|
|
889
794
|
});
|
|
890
|
-
if (node.nodeType === 1 /* ELEMENT_NODE */) {
|
|
891
|
-
const element = node;
|
|
892
|
-
if (((_a = element.tagName) == null ? void 0 : _a.includes("-")) && element.shadowRoot) {
|
|
893
|
-
if (BUILD4.isDev) {
|
|
894
|
-
console.log("\u{1F527} Patching focus method for slotted shadow DOM element:", element.tagName);
|
|
895
|
-
}
|
|
896
|
-
const originalFocus = element.focus.bind(element);
|
|
897
|
-
const originalDispatchEvent = element.dispatchEvent.bind(element);
|
|
898
|
-
const originalAddEventListener = element.addEventListener.bind(element);
|
|
899
|
-
let lastFocusTime = 0;
|
|
900
|
-
const blurSuppressionWindow = 200;
|
|
901
|
-
const blurListeners = [];
|
|
902
|
-
element.focus = function(options) {
|
|
903
|
-
lastFocusTime = Date.now();
|
|
904
|
-
originalFocus(options);
|
|
905
|
-
};
|
|
906
|
-
element.addEventListener = function(type, listener, options) {
|
|
907
|
-
if (type === "blur") {
|
|
908
|
-
const wrappedListener = function(event) {
|
|
909
|
-
const now = Date.now();
|
|
910
|
-
const timeSinceFocus = now - lastFocusTime;
|
|
911
|
-
if (timeSinceFocus < blurSuppressionWindow && lastFocusTime > 0) {
|
|
912
|
-
if (BUILD4.isDev) {
|
|
913
|
-
console.log("\u{1F6D1} Suppressing erroneous blur event - happened too soon after focus");
|
|
914
|
-
}
|
|
915
|
-
return;
|
|
916
|
-
}
|
|
917
|
-
listener.call(this, event);
|
|
918
|
-
};
|
|
919
|
-
blurListeners.push({ listener, options });
|
|
920
|
-
return originalAddEventListener.call(this, type, wrappedListener, options);
|
|
921
|
-
}
|
|
922
|
-
return originalAddEventListener.call(this, type, listener, options);
|
|
923
|
-
};
|
|
924
|
-
element.dispatchEvent = function(event) {
|
|
925
|
-
if (event.type === "blur") {
|
|
926
|
-
const now = Date.now();
|
|
927
|
-
const timeSinceFocus = now - lastFocusTime;
|
|
928
|
-
if (timeSinceFocus < blurSuppressionWindow && lastFocusTime > 0) {
|
|
929
|
-
if (BUILD4.isDev) {
|
|
930
|
-
console.log("\u{1F6D1} Preventing erroneous blur dispatchEvent - happened too soon after focus");
|
|
931
|
-
}
|
|
932
|
-
return true;
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
return originalDispatchEvent(event);
|
|
936
|
-
};
|
|
937
|
-
}
|
|
938
|
-
}
|
|
939
795
|
};
|
|
940
796
|
var validElementPatches = ["children", "nextElementSibling", "previousElementSibling"];
|
|
941
797
|
var validNodesPatches = [
|
|
@@ -3723,7 +3579,7 @@ var proxyCustomElement = (Cstr, compactMeta) => {
|
|
|
3723
3579
|
cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;
|
|
3724
3580
|
}
|
|
3725
3581
|
if (BUILD21.experimentalSlotFixes) {
|
|
3726
|
-
if (BUILD21.
|
|
3582
|
+
if (BUILD21.slot && cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
|
|
3727
3583
|
patchPseudoShadowDom(Cstr.prototype);
|
|
3728
3584
|
}
|
|
3729
3585
|
} else {
|
|
@@ -3940,7 +3796,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
3940
3796
|
}
|
|
3941
3797
|
};
|
|
3942
3798
|
if (BUILD22.experimentalSlotFixes) {
|
|
3943
|
-
if (BUILD22.
|
|
3799
|
+
if (BUILD22.slot && cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
|
|
3944
3800
|
patchPseudoShadowDom(HostElement.prototype);
|
|
3945
3801
|
}
|
|
3946
3802
|
} else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stencil/core/internal/hydrate",
|
|
3
|
-
"version": "4.35.1-dev.
|
|
3
|
+
"version": "4.35.1-dev.1750655001.8b007e9",
|
|
4
4
|
"description": "Stencil internal hydrate platform to be imported by the Stencil Compiler. Breaking changes can and will happen at any time.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"private": true
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Stencil Hydrate Runner v4.35.1-dev.
|
|
2
|
+
Stencil Hydrate Runner v4.35.1-dev.1750655001.8b007e9 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
@@ -10950,10 +10950,18 @@ var MockElement = class extends MockNode2 {
|
|
|
10950
10950
|
return shadowRoot;
|
|
10951
10951
|
}
|
|
10952
10952
|
blur() {
|
|
10953
|
-
|
|
10954
|
-
|
|
10955
|
-
|
|
10956
|
-
);
|
|
10953
|
+
if (isCurrentlyDispatching(this, "blur")) {
|
|
10954
|
+
return;
|
|
10955
|
+
}
|
|
10956
|
+
markAsDispatching(this, "blur");
|
|
10957
|
+
try {
|
|
10958
|
+
dispatchEvent(
|
|
10959
|
+
this,
|
|
10960
|
+
new MockFocusEvent("blur", { relatedTarget: null, bubbles: true, cancelable: true, composed: true })
|
|
10961
|
+
);
|
|
10962
|
+
} finally {
|
|
10963
|
+
unmarkAsDispatching(this, "blur");
|
|
10964
|
+
}
|
|
10957
10965
|
}
|
|
10958
10966
|
get localName() {
|
|
10959
10967
|
if (!this.nodeName) {
|
|
@@ -11695,6 +11703,28 @@ function setTextContent(elm, text) {
|
|
|
11695
11703
|
const textNode = new MockTextNode(elm.ownerDocument, text);
|
|
11696
11704
|
elm.appendChild(textNode);
|
|
11697
11705
|
}
|
|
11706
|
+
var currentlyDispatching = /* @__PURE__ */ new WeakMap();
|
|
11707
|
+
function isCurrentlyDispatching(target, eventType) {
|
|
11708
|
+
const dispatchingEvents = currentlyDispatching.get(target);
|
|
11709
|
+
return dispatchingEvents != null && dispatchingEvents.has(eventType);
|
|
11710
|
+
}
|
|
11711
|
+
function markAsDispatching(target, eventType) {
|
|
11712
|
+
let dispatchingEvents = currentlyDispatching.get(target);
|
|
11713
|
+
if (dispatchingEvents == null) {
|
|
11714
|
+
dispatchingEvents = /* @__PURE__ */ new Set();
|
|
11715
|
+
currentlyDispatching.set(target, dispatchingEvents);
|
|
11716
|
+
}
|
|
11717
|
+
dispatchingEvents.add(eventType);
|
|
11718
|
+
}
|
|
11719
|
+
function unmarkAsDispatching(target, eventType) {
|
|
11720
|
+
const dispatchingEvents = currentlyDispatching.get(target);
|
|
11721
|
+
if (dispatchingEvents != null) {
|
|
11722
|
+
dispatchingEvents.delete(eventType);
|
|
11723
|
+
if (dispatchingEvents.size === 0) {
|
|
11724
|
+
currentlyDispatching.delete(target);
|
|
11725
|
+
}
|
|
11726
|
+
}
|
|
11727
|
+
}
|
|
11698
11728
|
|
|
11699
11729
|
// src/mock-doc/comment-node.ts
|
|
11700
11730
|
var MockComment = class _MockComment extends MockNode2 {
|
package/internal/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stencil/core/internal",
|
|
3
|
-
"version": "4.35.1-dev.
|
|
3
|
+
"version": "4.35.1-dev.1750655001.8b007e9",
|
|
4
4
|
"description": "Stencil internals only to be imported by the Stencil Compiler. Breaking changes can and will happen at any time.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -756,19 +756,8 @@ var addSlotRelocateNode = (newChild, slotNode, prepend, position) => {
|
|
|
756
756
|
};
|
|
757
757
|
var getSlotName = (node) => typeof node["s-sn"] === "string" ? node["s-sn"] : node.nodeType === 1 && node.getAttribute("slot") || void 0;
|
|
758
758
|
function patchSlotNode(node) {
|
|
759
|
-
|
|
760
|
-
if (node.assignedElements || node.assignedNodes || !node["s-sr"]) {
|
|
761
|
-
console.log("\u274C patchSlotNode: already patched or not a slot reference");
|
|
762
|
-
return;
|
|
763
|
-
}
|
|
764
|
-
console.log("\u2705 patchSlotNode: proceeding with patching");
|
|
759
|
+
if (node.assignedElements || node.assignedNodes || !node["s-sr"]) return;
|
|
765
760
|
const assignedFactory = (elementsOnly) => (function(opts) {
|
|
766
|
-
var _a, _b;
|
|
767
|
-
console.log("\u{1F3ED} assignedFactory called:", {
|
|
768
|
-
elementsOnly,
|
|
769
|
-
slotName: this["s-sn"],
|
|
770
|
-
parentElement: (_b = (_a = this["s-cr"]) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.tagName
|
|
771
|
-
});
|
|
772
761
|
const toReturn = [];
|
|
773
762
|
const slotName = this["s-sn"];
|
|
774
763
|
if (opts == null ? void 0 : opts.flatten) {
|
|
@@ -780,30 +769,11 @@ function patchSlotNode(node) {
|
|
|
780
769
|
}
|
|
781
770
|
const parent = this["s-cr"].parentElement;
|
|
782
771
|
const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);
|
|
783
|
-
console.log("\u{1F50D} Processing slotted nodes:", {
|
|
784
|
-
count: slottedNodes.length,
|
|
785
|
-
nodes: Array.from(slottedNodes).map((n) => ({ tagName: n.tagName, nodeType: n.nodeType }))
|
|
786
|
-
});
|
|
787
772
|
slottedNodes.forEach((n) => {
|
|
788
|
-
console.log("\u{1F50D} Checking node:", {
|
|
789
|
-
tagName: n.tagName,
|
|
790
|
-
nodeType: n.nodeType,
|
|
791
|
-
slotName: getSlotName(n),
|
|
792
|
-
targetSlotName: slotName
|
|
793
|
-
});
|
|
794
773
|
if (slotName === getSlotName(n)) {
|
|
795
|
-
console.log("\u2705 Node matches slot, adding to return array");
|
|
796
774
|
toReturn.push(n);
|
|
797
|
-
patchSlottedShadowDomEvents(n, parent);
|
|
798
|
-
} else {
|
|
799
|
-
console.log("\u274C Node does not match slot");
|
|
800
775
|
}
|
|
801
776
|
});
|
|
802
|
-
console.log("\u{1F3ED} assignedFactory returning:", {
|
|
803
|
-
count: toReturn.length,
|
|
804
|
-
elementsOnly,
|
|
805
|
-
nodes: toReturn.map((n) => ({ tagName: n.tagName, nodeType: n.nodeType }))
|
|
806
|
-
});
|
|
807
777
|
if (elementsOnly) {
|
|
808
778
|
return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);
|
|
809
779
|
}
|
|
@@ -812,70 +782,6 @@ function patchSlotNode(node) {
|
|
|
812
782
|
node.assignedElements = assignedFactory(true);
|
|
813
783
|
node.assignedNodes = assignedFactory(false);
|
|
814
784
|
}
|
|
815
|
-
function patchSlottedShadowDomEvents(slottedNode, parentHost) {
|
|
816
|
-
var _a, _b, _c;
|
|
817
|
-
console.log("\u{1F50D} patchSlottedShadowDomEvents called:", {
|
|
818
|
-
slottedNode: slottedNode.tagName,
|
|
819
|
-
parentHost: parentHost.tagName,
|
|
820
|
-
nodeType: slottedNode.nodeType,
|
|
821
|
-
isElement: slottedNode.nodeType === 1 /* ElementNode */
|
|
822
|
-
});
|
|
823
|
-
if (slottedNode.nodeType !== 1 /* ElementNode */) {
|
|
824
|
-
console.log("\u274C Not an element node, skipping");
|
|
825
|
-
return;
|
|
826
|
-
}
|
|
827
|
-
const element = slottedNode;
|
|
828
|
-
console.log("\u{1F50D} Element details:", {
|
|
829
|
-
tagName: element.tagName,
|
|
830
|
-
hasHyphen: (_a = element.tagName) == null ? void 0 : _a.includes("-"),
|
|
831
|
-
hasShadowRoot: !!element.shadowRoot,
|
|
832
|
-
parentHasShadowRoot: !!parentHost.shadowRoot
|
|
833
|
-
});
|
|
834
|
-
if (!((_b = element.tagName) == null ? void 0 : _b.includes("-")) || !element.shadowRoot || parentHost.shadowRoot) {
|
|
835
|
-
console.log("\u274C Conditions not met for patching:", {
|
|
836
|
-
hasHyphen: (_c = element.tagName) == null ? void 0 : _c.includes("-"),
|
|
837
|
-
hasShadowRoot: !!element.shadowRoot,
|
|
838
|
-
parentHasShadowRoot: !!parentHost.shadowRoot
|
|
839
|
-
});
|
|
840
|
-
return;
|
|
841
|
-
}
|
|
842
|
-
if (element.__stencilSlotEventPatched) {
|
|
843
|
-
console.log("\u26A0\uFE0F Already patched, skipping");
|
|
844
|
-
return;
|
|
845
|
-
}
|
|
846
|
-
console.log("\u2705 Patching element:", element.tagName);
|
|
847
|
-
element.__stencilSlotEventPatched = true;
|
|
848
|
-
const originalDispatchEvent = element.dispatchEvent;
|
|
849
|
-
element.dispatchEvent = function(event) {
|
|
850
|
-
var _a2;
|
|
851
|
-
console.log("\u{1F3AF} dispatchEvent called:", {
|
|
852
|
-
type: event.type,
|
|
853
|
-
target: (_a2 = event.target) == null ? void 0 : _a2.tagName,
|
|
854
|
-
bubbles: event.bubbles,
|
|
855
|
-
composed: event.composed
|
|
856
|
-
});
|
|
857
|
-
if ((event.type === "focus" || event.type === "blur") && event.bubbles) {
|
|
858
|
-
console.log("\u{1F6D1} Intercepting focus/blur event, creating non-bubbling version");
|
|
859
|
-
const nonBubblingEvent = new event.constructor(event.type, {
|
|
860
|
-
...event,
|
|
861
|
-
bubbles: false,
|
|
862
|
-
composed: event.composed
|
|
863
|
-
});
|
|
864
|
-
Object.keys(event).forEach((key) => {
|
|
865
|
-
if (key !== "bubbles" && key !== "type") {
|
|
866
|
-
try {
|
|
867
|
-
nonBubblingEvent[key] = event[key];
|
|
868
|
-
} catch (e) {
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
});
|
|
872
|
-
console.log("\u{1F4E4} Dispatching non-bubbling event");
|
|
873
|
-
return originalDispatchEvent.call(this, nonBubblingEvent);
|
|
874
|
-
}
|
|
875
|
-
console.log("\u{1F4E4} Dispatching original event");
|
|
876
|
-
return originalDispatchEvent.call(this, event);
|
|
877
|
-
};
|
|
878
|
-
}
|
|
879
785
|
function dispatchSlotChangeEvent(elm) {
|
|
880
786
|
elm.dispatchEvent(new CustomEvent("slotchange", { bubbles: false, cancelable: false, composed: false }));
|
|
881
787
|
}
|
|
@@ -1220,67 +1126,17 @@ var patchPreviousElementSibling = (element) => {
|
|
|
1220
1126
|
});
|
|
1221
1127
|
};
|
|
1222
1128
|
var patchParentNode = (node) => {
|
|
1223
|
-
var _a;
|
|
1224
1129
|
if (!node || node.__parentNode) return;
|
|
1225
1130
|
patchHostOriginalAccessor("parentNode", node);
|
|
1226
1131
|
Object.defineProperty(node, "parentNode", {
|
|
1227
1132
|
get: function() {
|
|
1228
|
-
var
|
|
1229
|
-
return ((
|
|
1133
|
+
var _a;
|
|
1134
|
+
return ((_a = this["s-ol"]) == null ? void 0 : _a.parentNode) || this.__parentNode;
|
|
1230
1135
|
},
|
|
1231
1136
|
set: function(value) {
|
|
1232
1137
|
this.__parentNode = value;
|
|
1233
1138
|
}
|
|
1234
1139
|
});
|
|
1235
|
-
if (node.nodeType === 1 /* ELEMENT_NODE */) {
|
|
1236
|
-
const element = node;
|
|
1237
|
-
if (((_a = element.tagName) == null ? void 0 : _a.includes("-")) && element.shadowRoot) {
|
|
1238
|
-
if (import_app_data3.BUILD.isDev) {
|
|
1239
|
-
console.log("\u{1F527} Patching focus method for slotted shadow DOM element:", element.tagName);
|
|
1240
|
-
}
|
|
1241
|
-
const originalFocus = element.focus.bind(element);
|
|
1242
|
-
const originalDispatchEvent = element.dispatchEvent.bind(element);
|
|
1243
|
-
const originalAddEventListener = element.addEventListener.bind(element);
|
|
1244
|
-
let lastFocusTime = 0;
|
|
1245
|
-
const blurSuppressionWindow = 200;
|
|
1246
|
-
const blurListeners = [];
|
|
1247
|
-
element.focus = function(options) {
|
|
1248
|
-
lastFocusTime = Date.now();
|
|
1249
|
-
originalFocus(options);
|
|
1250
|
-
};
|
|
1251
|
-
element.addEventListener = function(type, listener, options) {
|
|
1252
|
-
if (type === "blur") {
|
|
1253
|
-
const wrappedListener = function(event) {
|
|
1254
|
-
const now = Date.now();
|
|
1255
|
-
const timeSinceFocus = now - lastFocusTime;
|
|
1256
|
-
if (timeSinceFocus < blurSuppressionWindow && lastFocusTime > 0) {
|
|
1257
|
-
if (import_app_data3.BUILD.isDev) {
|
|
1258
|
-
console.log("\u{1F6D1} Suppressing erroneous blur event - happened too soon after focus");
|
|
1259
|
-
}
|
|
1260
|
-
return;
|
|
1261
|
-
}
|
|
1262
|
-
listener.call(this, event);
|
|
1263
|
-
};
|
|
1264
|
-
blurListeners.push({ listener, options });
|
|
1265
|
-
return originalAddEventListener.call(this, type, wrappedListener, options);
|
|
1266
|
-
}
|
|
1267
|
-
return originalAddEventListener.call(this, type, listener, options);
|
|
1268
|
-
};
|
|
1269
|
-
element.dispatchEvent = function(event) {
|
|
1270
|
-
if (event.type === "blur") {
|
|
1271
|
-
const now = Date.now();
|
|
1272
|
-
const timeSinceFocus = now - lastFocusTime;
|
|
1273
|
-
if (timeSinceFocus < blurSuppressionWindow && lastFocusTime > 0) {
|
|
1274
|
-
if (import_app_data3.BUILD.isDev) {
|
|
1275
|
-
console.log("\u{1F6D1} Preventing erroneous blur dispatchEvent - happened too soon after focus");
|
|
1276
|
-
}
|
|
1277
|
-
return true;
|
|
1278
|
-
}
|
|
1279
|
-
}
|
|
1280
|
-
return originalDispatchEvent(event);
|
|
1281
|
-
};
|
|
1282
|
-
}
|
|
1283
|
-
}
|
|
1284
1140
|
};
|
|
1285
1141
|
var validElementPatches = ["children", "nextElementSibling", "previousElementSibling"];
|
|
1286
1142
|
var validNodesPatches = [
|
|
@@ -4068,7 +3924,7 @@ var proxyCustomElement = (Cstr, compactMeta) => {
|
|
|
4068
3924
|
cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;
|
|
4069
3925
|
}
|
|
4070
3926
|
if (import_app_data20.BUILD.experimentalSlotFixes) {
|
|
4071
|
-
if (import_app_data20.BUILD.
|
|
3927
|
+
if (import_app_data20.BUILD.slot && cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
|
|
4072
3928
|
patchPseudoShadowDom(Cstr.prototype);
|
|
4073
3929
|
}
|
|
4074
3930
|
} else {
|
|
@@ -4285,7 +4141,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
4285
4141
|
}
|
|
4286
4142
|
};
|
|
4287
4143
|
if (import_app_data21.BUILD.experimentalSlotFixes) {
|
|
4288
|
-
if (import_app_data21.BUILD.
|
|
4144
|
+
if (import_app_data21.BUILD.slot && cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
|
|
4289
4145
|
patchPseudoShadowDom(HostElement.prototype);
|
|
4290
4146
|
}
|
|
4291
4147
|
} else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stencil/core/internal/testing",
|
|
3
|
-
"version": "4.35.1-dev.
|
|
3
|
+
"version": "4.35.1-dev.1750655001.8b007e9",
|
|
4
4
|
"description": "Stencil internal testing platform to be imported by the Stencil Compiler. Breaking changes can and will happen at any time.",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"private": true
|
package/mock-doc/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Stencil Mock Doc (CommonJS) v4.35.1-dev.
|
|
2
|
+
Stencil Mock Doc (CommonJS) v4.35.1-dev.1750655001.8b007e9 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
"use strict";
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -6833,10 +6833,18 @@ var MockElement = class extends MockNode2 {
|
|
|
6833
6833
|
return shadowRoot;
|
|
6834
6834
|
}
|
|
6835
6835
|
blur() {
|
|
6836
|
-
|
|
6837
|
-
|
|
6838
|
-
|
|
6839
|
-
);
|
|
6836
|
+
if (isCurrentlyDispatching(this, "blur")) {
|
|
6837
|
+
return;
|
|
6838
|
+
}
|
|
6839
|
+
markAsDispatching(this, "blur");
|
|
6840
|
+
try {
|
|
6841
|
+
dispatchEvent(
|
|
6842
|
+
this,
|
|
6843
|
+
new MockFocusEvent("blur", { relatedTarget: null, bubbles: true, cancelable: true, composed: true })
|
|
6844
|
+
);
|
|
6845
|
+
} finally {
|
|
6846
|
+
unmarkAsDispatching(this, "blur");
|
|
6847
|
+
}
|
|
6840
6848
|
}
|
|
6841
6849
|
get localName() {
|
|
6842
6850
|
if (!this.nodeName) {
|
|
@@ -7578,6 +7586,28 @@ function setTextContent(elm, text) {
|
|
|
7578
7586
|
const textNode = new MockTextNode(elm.ownerDocument, text);
|
|
7579
7587
|
elm.appendChild(textNode);
|
|
7580
7588
|
}
|
|
7589
|
+
var currentlyDispatching = /* @__PURE__ */ new WeakMap();
|
|
7590
|
+
function isCurrentlyDispatching(target, eventType) {
|
|
7591
|
+
const dispatchingEvents = currentlyDispatching.get(target);
|
|
7592
|
+
return dispatchingEvents != null && dispatchingEvents.has(eventType);
|
|
7593
|
+
}
|
|
7594
|
+
function markAsDispatching(target, eventType) {
|
|
7595
|
+
let dispatchingEvents = currentlyDispatching.get(target);
|
|
7596
|
+
if (dispatchingEvents == null) {
|
|
7597
|
+
dispatchingEvents = /* @__PURE__ */ new Set();
|
|
7598
|
+
currentlyDispatching.set(target, dispatchingEvents);
|
|
7599
|
+
}
|
|
7600
|
+
dispatchingEvents.add(eventType);
|
|
7601
|
+
}
|
|
7602
|
+
function unmarkAsDispatching(target, eventType) {
|
|
7603
|
+
const dispatchingEvents = currentlyDispatching.get(target);
|
|
7604
|
+
if (dispatchingEvents != null) {
|
|
7605
|
+
dispatchingEvents.delete(eventType);
|
|
7606
|
+
if (dispatchingEvents.size === 0) {
|
|
7607
|
+
currentlyDispatching.delete(target);
|
|
7608
|
+
}
|
|
7609
|
+
}
|
|
7610
|
+
}
|
|
7581
7611
|
|
|
7582
7612
|
// src/mock-doc/comment-node.ts
|
|
7583
7613
|
var MockComment = class _MockComment extends MockNode2 {
|
package/mock-doc/index.d.ts
CHANGED
|
@@ -754,6 +754,22 @@ declare class MockTextNode extends MockNode {
|
|
|
754
754
|
set data(text: string);
|
|
755
755
|
get wholeText(): string;
|
|
756
756
|
}
|
|
757
|
+
/**
|
|
758
|
+
* @param target - The element that is currently dispatching an event.
|
|
759
|
+
* @param eventType - The type of event that is currently dispatching.
|
|
760
|
+
* @returns True if the element is currently dispatching the event, false otherwise.
|
|
761
|
+
*/
|
|
762
|
+
declare function isCurrentlyDispatching(target: any, eventType: string): boolean;
|
|
763
|
+
/**
|
|
764
|
+
* @param target - The element that is currently dispatching an event.
|
|
765
|
+
* @param eventType - The type of event that is currently dispatching.
|
|
766
|
+
*/
|
|
767
|
+
declare function markAsDispatching(target: any, eventType: string): void;
|
|
768
|
+
/**
|
|
769
|
+
* @param target - The element that is currently dispatching an event.
|
|
770
|
+
* @param eventType - The type of event that is currently dispatching.
|
|
771
|
+
*/
|
|
772
|
+
declare function unmarkAsDispatching(target: any, eventType: string): void;
|
|
757
773
|
declare function parseHtmlToDocument(html: string, ownerDocument?: MockDocument): any;
|
|
758
774
|
declare function parseHtmlToFragment(html: string, ownerDocument?: MockDocument): any;
|
|
759
775
|
declare function parseDocumentUtil(ownerDocument: any, html: string): any;
|
package/mock-doc/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Stencil Mock Doc v4.35.1-dev.
|
|
2
|
+
Stencil Mock Doc v4.35.1-dev.1750655001.8b007e9 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
// src/runtime/runtime-constants.ts
|
|
@@ -6780,10 +6780,18 @@ var MockElement = class extends MockNode2 {
|
|
|
6780
6780
|
return shadowRoot;
|
|
6781
6781
|
}
|
|
6782
6782
|
blur() {
|
|
6783
|
-
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
);
|
|
6783
|
+
if (isCurrentlyDispatching(this, "blur")) {
|
|
6784
|
+
return;
|
|
6785
|
+
}
|
|
6786
|
+
markAsDispatching(this, "blur");
|
|
6787
|
+
try {
|
|
6788
|
+
dispatchEvent(
|
|
6789
|
+
this,
|
|
6790
|
+
new MockFocusEvent("blur", { relatedTarget: null, bubbles: true, cancelable: true, composed: true })
|
|
6791
|
+
);
|
|
6792
|
+
} finally {
|
|
6793
|
+
unmarkAsDispatching(this, "blur");
|
|
6794
|
+
}
|
|
6787
6795
|
}
|
|
6788
6796
|
get localName() {
|
|
6789
6797
|
if (!this.nodeName) {
|
|
@@ -7525,6 +7533,28 @@ function setTextContent(elm, text) {
|
|
|
7525
7533
|
const textNode = new MockTextNode(elm.ownerDocument, text);
|
|
7526
7534
|
elm.appendChild(textNode);
|
|
7527
7535
|
}
|
|
7536
|
+
var currentlyDispatching = /* @__PURE__ */ new WeakMap();
|
|
7537
|
+
function isCurrentlyDispatching(target, eventType) {
|
|
7538
|
+
const dispatchingEvents = currentlyDispatching.get(target);
|
|
7539
|
+
return dispatchingEvents != null && dispatchingEvents.has(eventType);
|
|
7540
|
+
}
|
|
7541
|
+
function markAsDispatching(target, eventType) {
|
|
7542
|
+
let dispatchingEvents = currentlyDispatching.get(target);
|
|
7543
|
+
if (dispatchingEvents == null) {
|
|
7544
|
+
dispatchingEvents = /* @__PURE__ */ new Set();
|
|
7545
|
+
currentlyDispatching.set(target, dispatchingEvents);
|
|
7546
|
+
}
|
|
7547
|
+
dispatchingEvents.add(eventType);
|
|
7548
|
+
}
|
|
7549
|
+
function unmarkAsDispatching(target, eventType) {
|
|
7550
|
+
const dispatchingEvents = currentlyDispatching.get(target);
|
|
7551
|
+
if (dispatchingEvents != null) {
|
|
7552
|
+
dispatchingEvents.delete(eventType);
|
|
7553
|
+
if (dispatchingEvents.size === 0) {
|
|
7554
|
+
currentlyDispatching.delete(target);
|
|
7555
|
+
}
|
|
7556
|
+
}
|
|
7557
|
+
}
|
|
7528
7558
|
|
|
7529
7559
|
// src/mock-doc/comment-node.ts
|
|
7530
7560
|
var MockComment = class _MockComment extends MockNode2 {
|
package/mock-doc/package.json
CHANGED
package/package.json
CHANGED
package/screenshot/index.js
CHANGED