@remote-dom/polyfill 1.2.1 → 1.3.1
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/CHANGELOG.md +170 -0
- package/build/cjs/Attr.cjs +1 -1
- package/build/cjs/CustomElementRegistry.cjs +2 -2
- package/build/cjs/Document.cjs +4 -2
- package/build/cjs/DocumentFragment.cjs +2 -2
- package/build/cjs/Element.cjs +5 -2
- package/build/cjs/Event.cjs +19 -25
- package/build/cjs/EventTarget.cjs +9 -14
- package/build/cjs/Node.cjs +1 -1
- package/build/cjs/ParentNode.cjs +4 -2
- package/build/cjs/SVGElement.cjs +1 -1
- package/build/cjs/Text.cjs +1 -1
- package/build/cjs/Window.cjs +20 -20
- package/build/cjs/constants.cjs +4 -0
- package/build/esm/Attr.mjs +1 -1
- package/build/esm/CustomElementRegistry.mjs +2 -2
- package/build/esm/Document.mjs +5 -3
- package/build/esm/DocumentFragment.mjs +2 -2
- package/build/esm/Element.mjs +5 -2
- package/build/esm/Event.mjs +20 -26
- package/build/esm/EventTarget.mjs +10 -15
- package/build/esm/Node.mjs +1 -1
- package/build/esm/ParentNode.mjs +4 -2
- package/build/esm/SVGElement.mjs +1 -1
- package/build/esm/Text.mjs +1 -1
- package/build/esm/Window.mjs +20 -20
- package/build/esm/constants.mjs +3 -1
- package/build/esnext/Document.esnext +4 -2
- package/build/esnext/Element.esnext +3 -0
- package/build/esnext/Event.esnext +15 -21
- package/build/esnext/EventTarget.esnext +10 -15
- package/build/esnext/ParentNode.esnext +2 -0
- package/build/esnext/constants.esnext +3 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/typescript/Document.d.ts.map +1 -1
- package/build/typescript/Element.d.ts +1 -0
- package/build/typescript/Element.d.ts.map +1 -1
- package/build/typescript/Event.d.ts +5 -5
- package/build/typescript/Event.d.ts.map +1 -1
- package/build/typescript/EventTarget.d.ts.map +1 -1
- package/build/typescript/ParentNode.d.ts.map +1 -1
- package/build/typescript/constants.d.ts +2 -0
- package/build/typescript/constants.d.ts.map +1 -1
- package/package.json +1 -1
- package/source/Document.ts +3 -1
- package/source/Element.ts +4 -0
- package/source/Event.ts +24 -26
- package/source/EventTarget.ts +14 -15
- package/source/ParentNode.ts +2 -0
- package/source/constants.ts +2 -0
package/build/esm/Event.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IS_TRUSTED, LISTENERS } from './constants.mjs';
|
|
1
|
+
import { PATH, STOP_IMMEDIATE_PROPAGATION, IS_TRUSTED, LISTENERS } from './constants.mjs';
|
|
2
2
|
|
|
3
3
|
let EventPhase = /*#__PURE__*/function (EventPhase) {
|
|
4
4
|
EventPhase[EventPhase["NONE"] = 0] = "NONE";
|
|
@@ -10,17 +10,17 @@ let EventPhase = /*#__PURE__*/function (EventPhase) {
|
|
|
10
10
|
const CAPTURE_MARKER = '@';
|
|
11
11
|
const now = typeof performance === 'undefined' ? Date.now : performance.now.bind(performance);
|
|
12
12
|
class Event {
|
|
13
|
-
static NONE = EventPhase.NONE;
|
|
14
|
-
static CAPTURING_PHASE = EventPhase.CAPTURING_PHASE;
|
|
15
|
-
static AT_TARGET = EventPhase.AT_TARGET;
|
|
16
|
-
static BUBBLING_PHASE = EventPhase.BUBBLING_PHASE;
|
|
13
|
+
static NONE = (() => EventPhase.NONE)();
|
|
14
|
+
static CAPTURING_PHASE = (() => EventPhase.CAPTURING_PHASE)();
|
|
15
|
+
static AT_TARGET = (() => EventPhase.AT_TARGET)();
|
|
16
|
+
static BUBBLING_PHASE = (() => EventPhase.BUBBLING_PHASE)();
|
|
17
17
|
|
|
18
18
|
// NONE = EventPhase.NONE;
|
|
19
19
|
// CAPTURING_PHASE = EventPhase.CAPTURING_PHASE;
|
|
20
20
|
// AT_TARGET = EventPhase.AT_TARGET;
|
|
21
21
|
// BUBBLING_PHASE = EventPhase.BUBBLING_PHASE;
|
|
22
22
|
|
|
23
|
-
timeStamp = now();
|
|
23
|
+
timeStamp = (() => now())();
|
|
24
24
|
target = null;
|
|
25
25
|
currentTarget = null;
|
|
26
26
|
srcElement = null;
|
|
@@ -29,11 +29,11 @@ class Event {
|
|
|
29
29
|
composed = false;
|
|
30
30
|
defaultPrevented = false;
|
|
31
31
|
cancelBubble = false;
|
|
32
|
-
immediatePropagationStopped = false;
|
|
33
32
|
eventPhase = 0;
|
|
34
|
-
path = [];
|
|
35
33
|
// private inPassiveListener = false;
|
|
36
34
|
|
|
35
|
+
[PATH] = [];
|
|
36
|
+
[STOP_IMMEDIATE_PROPAGATION] = false;
|
|
37
37
|
constructor(type, options) {
|
|
38
38
|
this.type = type;
|
|
39
39
|
Object.defineProperty(this, IS_TRUSTED, {
|
|
@@ -46,17 +46,18 @@ class Event {
|
|
|
46
46
|
if (options.composed) this.composed = options.composed;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
get composedPath() {
|
|
50
|
-
return this.path;
|
|
51
|
-
}
|
|
52
49
|
get isTrusted() {
|
|
53
50
|
return this[IS_TRUSTED];
|
|
54
51
|
}
|
|
52
|
+
composedPath() {
|
|
53
|
+
return this[PATH];
|
|
54
|
+
}
|
|
55
55
|
stopPropagation() {
|
|
56
56
|
this.cancelBubble = true;
|
|
57
57
|
}
|
|
58
58
|
stopImmediatePropagation() {
|
|
59
|
-
this
|
|
59
|
+
this[STOP_IMMEDIATE_PROPAGATION] = true;
|
|
60
|
+
this.cancelBubble = true;
|
|
60
61
|
}
|
|
61
62
|
preventDefault() {
|
|
62
63
|
this.defaultPrevented = true;
|
|
@@ -75,31 +76,24 @@ class Event {
|
|
|
75
76
|
this.cancelable = Boolean(cancelable);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
|
-
function fireEvent(event,
|
|
79
|
-
const listeners =
|
|
79
|
+
function fireEvent(event, currentTarget, phase) {
|
|
80
|
+
const listeners = currentTarget[LISTENERS];
|
|
80
81
|
const list = listeners?.get(`${event.type}${phase === EventPhase.CAPTURING_PHASE ? CAPTURE_MARKER : ''}`);
|
|
81
|
-
if (!list) return
|
|
82
|
-
let defaultPrevented = false;
|
|
82
|
+
if (!list) return;
|
|
83
83
|
for (const listener of list) {
|
|
84
|
-
event.eventPhase = phase;
|
|
85
|
-
event.currentTarget =
|
|
84
|
+
event.eventPhase = event.target === currentTarget ? EventPhase.AT_TARGET : phase;
|
|
85
|
+
event.currentTarget = currentTarget;
|
|
86
86
|
try {
|
|
87
87
|
if (typeof listener === 'object') {
|
|
88
88
|
listener.handleEvent(event);
|
|
89
89
|
} else {
|
|
90
|
-
listener.call(
|
|
90
|
+
listener.call(currentTarget, event);
|
|
91
91
|
}
|
|
92
92
|
} catch (err) {
|
|
93
93
|
setTimeout(thrower, 0, err);
|
|
94
94
|
}
|
|
95
|
-
if (event
|
|
96
|
-
defaultPrevented = true;
|
|
97
|
-
}
|
|
98
|
-
if (event.immediatePropagationStopped) {
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
95
|
+
if (event[STOP_IMMEDIATE_PROPAGATION]) break;
|
|
101
96
|
}
|
|
102
|
-
return defaultPrevented;
|
|
103
97
|
}
|
|
104
98
|
function thrower(error) {
|
|
105
99
|
throw error;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LISTENERS, OWNER_DOCUMENT, HOOKS } from './constants.mjs';
|
|
1
|
+
import { LISTENERS, OWNER_DOCUMENT, HOOKS, PATH } from './constants.mjs';
|
|
2
2
|
import { fireEvent, CAPTURE_MARKER, EventPhase } from './Event.mjs';
|
|
3
3
|
|
|
4
4
|
const ONCE_LISTENERS = Symbol('onceListeners');
|
|
@@ -67,22 +67,17 @@ class EventTarget {
|
|
|
67
67
|
// }
|
|
68
68
|
event.target = this;
|
|
69
69
|
event.srcElement = this;
|
|
70
|
-
event
|
|
71
|
-
let
|
|
72
|
-
|
|
73
|
-
if (
|
|
74
|
-
defaultPrevented = true;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (fireEvent(event, this, EventPhase.AT_TARGET)) {
|
|
78
|
-
defaultPrevented = true;
|
|
70
|
+
event[PATH] = path;
|
|
71
|
+
for (let i = path.length; i--;) {
|
|
72
|
+
fireEvent(event, path[i], EventPhase.CAPTURING_PHASE);
|
|
73
|
+
if (event.cancelBubble) return event.defaultPrevented;
|
|
79
74
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
const bubblePath = event.bubbles ? path : path.slice(0, 1);
|
|
76
|
+
for (let i = 0; i < bubblePath.length; i++) {
|
|
77
|
+
fireEvent(event, bubblePath[i], EventPhase.BUBBLING_PHASE);
|
|
78
|
+
if (event.cancelBubble) return event.defaultPrevented;
|
|
84
79
|
}
|
|
85
|
-
return
|
|
80
|
+
return event.defaultPrevented;
|
|
86
81
|
}
|
|
87
82
|
}
|
|
88
83
|
function removeEventListener(type, listener, options) {
|
package/build/esm/Node.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { EventTarget } from './EventTarget.mjs';
|
|
|
3
3
|
import { isCharacterData, isParentNode, cloneNode, isTextNode } from './shared.mjs';
|
|
4
4
|
|
|
5
5
|
class Node extends EventTarget {
|
|
6
|
-
nodeType = NodeType.NODE;
|
|
6
|
+
nodeType = (() => NodeType.NODE)();
|
|
7
7
|
[NAME] = '';
|
|
8
8
|
[PARENT] = null;
|
|
9
9
|
[CHILD] = null;
|
package/build/esm/ParentNode.mjs
CHANGED
|
@@ -4,8 +4,8 @@ import { NodeList } from './NodeList.mjs';
|
|
|
4
4
|
import { querySelectorAll, querySelector } from './selectors.mjs';
|
|
5
5
|
|
|
6
6
|
class ParentNode extends ChildNode {
|
|
7
|
-
childNodes = new NodeList();
|
|
8
|
-
children = new NodeList();
|
|
7
|
+
childNodes = (() => new NodeList())();
|
|
8
|
+
children = (() => new NodeList())();
|
|
9
9
|
appendChild(child) {
|
|
10
10
|
this.insertInto(child, null);
|
|
11
11
|
}
|
|
@@ -45,6 +45,7 @@ class ParentNode extends ChildNode {
|
|
|
45
45
|
const children = this.children;
|
|
46
46
|
children.splice(children.indexOf(child), 1);
|
|
47
47
|
}
|
|
48
|
+
child.disconnectedCallback?.();
|
|
48
49
|
this[HOOKS].removeChild?.(this, child, childNodesIndex);
|
|
49
50
|
}
|
|
50
51
|
replaceChild(newChild, oldChild) {
|
|
@@ -120,6 +121,7 @@ class ParentNode extends ChildNode {
|
|
|
120
121
|
childNodes.push(child);
|
|
121
122
|
if (isElement) this.children.push(child);
|
|
122
123
|
}
|
|
124
|
+
child.connectedCallback?.();
|
|
123
125
|
this[HOOKS].insertChild?.(this, child, insertIndex);
|
|
124
126
|
}
|
|
125
127
|
}
|
package/build/esm/SVGElement.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { NS, NamespaceURI } from './constants.mjs';
|
|
|
2
2
|
import { Element } from './Element.mjs';
|
|
3
3
|
|
|
4
4
|
class SVGElement extends Element {
|
|
5
|
-
[NS] = NamespaceURI.SVG;
|
|
5
|
+
[NS] = (() => NamespaceURI.SVG)();
|
|
6
6
|
get ownerSVGElement() {
|
|
7
7
|
let root = null;
|
|
8
8
|
let parent = this.parentNode;
|
package/build/esm/Text.mjs
CHANGED
package/build/esm/Window.mjs
CHANGED
|
@@ -23,26 +23,26 @@ class Window extends EventTarget {
|
|
|
23
23
|
parent = this;
|
|
24
24
|
self = this;
|
|
25
25
|
top = this;
|
|
26
|
-
document = new Document(this);
|
|
27
|
-
customElements = new CustomElementRegistryImplementation();
|
|
28
|
-
location = globalThis.location;
|
|
29
|
-
navigator = globalThis.navigator;
|
|
30
|
-
Event = Event;
|
|
31
|
-
EventTarget = EventTarget;
|
|
32
|
-
CustomEvent = CustomEvent;
|
|
33
|
-
Node = Node;
|
|
34
|
-
ParentNode = ParentNode;
|
|
35
|
-
ChildNode = ChildNode;
|
|
36
|
-
DocumentFragment = DocumentFragment;
|
|
37
|
-
Document = Document;
|
|
38
|
-
CharacterData = CharacterData;
|
|
39
|
-
Comment = Comment;
|
|
40
|
-
Text = Text;
|
|
41
|
-
Element = Element;
|
|
42
|
-
HTMLElement = HTMLElement;
|
|
43
|
-
SVGElement = SVGElement;
|
|
44
|
-
HTMLTemplateElement = HTMLTemplateElement;
|
|
45
|
-
MutationObserver = MutationObserver;
|
|
26
|
+
document = (() => new Document(this))();
|
|
27
|
+
customElements = (() => new CustomElementRegistryImplementation())();
|
|
28
|
+
location = (() => globalThis.location)();
|
|
29
|
+
navigator = (() => globalThis.navigator)();
|
|
30
|
+
Event = (() => Event)();
|
|
31
|
+
EventTarget = (() => EventTarget)();
|
|
32
|
+
CustomEvent = (() => CustomEvent)();
|
|
33
|
+
Node = (() => Node)();
|
|
34
|
+
ParentNode = (() => ParentNode)();
|
|
35
|
+
ChildNode = (() => ChildNode)();
|
|
36
|
+
DocumentFragment = (() => DocumentFragment)();
|
|
37
|
+
Document = (() => Document)();
|
|
38
|
+
CharacterData = (() => CharacterData)();
|
|
39
|
+
Comment = (() => Comment)();
|
|
40
|
+
Text = (() => Text)();
|
|
41
|
+
Element = (() => Element)();
|
|
42
|
+
HTMLElement = (() => HTMLElement)();
|
|
43
|
+
SVGElement = (() => SVGElement)();
|
|
44
|
+
HTMLTemplateElement = (() => HTMLTemplateElement)();
|
|
45
|
+
MutationObserver = (() => MutationObserver)();
|
|
46
46
|
static setGlobal(window) {
|
|
47
47
|
const properties = Object.getOwnPropertyDescriptors(window);
|
|
48
48
|
delete properties.self;
|
package/build/esm/constants.mjs
CHANGED
|
@@ -11,6 +11,8 @@ const PARENT = Symbol('parent');
|
|
|
11
11
|
const DATA = Symbol('data');
|
|
12
12
|
const LISTENERS = Symbol('listeners');
|
|
13
13
|
const IS_TRUSTED = Symbol('isTrusted');
|
|
14
|
+
const PATH = Symbol('path');
|
|
15
|
+
const STOP_IMMEDIATE_PROPAGATION = Symbol('stop_immediate_propagation');
|
|
14
16
|
const CONTENT = Symbol('content');
|
|
15
17
|
const HOOKS = Symbol('hooks');
|
|
16
18
|
|
|
@@ -36,4 +38,4 @@ let NamespaceURI = /*#__PURE__*/function (NamespaceURI) {
|
|
|
36
38
|
return NamespaceURI;
|
|
37
39
|
}({});
|
|
38
40
|
|
|
39
|
-
export { ATTRIBUTES, CHILD, CONTENT, DATA, HOOKS, IS_TRUSTED, LISTENERS, NAME, NEXT, NS, NamespaceURI, NodeType, OWNER_DOCUMENT, OWNER_ELEMENT, PARENT, PREV, VALUE };
|
|
41
|
+
export { ATTRIBUTES, CHILD, CONTENT, DATA, HOOKS, IS_TRUSTED, LISTENERS, NAME, NEXT, NS, NamespaceURI, NodeType, OWNER_DOCUMENT, OWNER_ELEMENT, PARENT, PATH, PREV, STOP_IMMEDIATE_PROPAGATION, VALUE };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NodeType, NAME, OWNER_DOCUMENT, NamespaceURI, NS
|
|
1
|
+
import { NodeType, NAME, OWNER_DOCUMENT, HOOKS, NamespaceURI, NS } from './constants.esnext';
|
|
2
2
|
import { Event } from './Event.esnext';
|
|
3
3
|
import { ParentNode } from './ParentNode.esnext';
|
|
4
4
|
import { Element } from './Element.esnext';
|
|
@@ -36,7 +36,9 @@ class Document extends ParentNode {
|
|
|
36
36
|
return createElement(this, localName, namespaceURI);
|
|
37
37
|
}
|
|
38
38
|
createTextNode(data) {
|
|
39
|
-
|
|
39
|
+
const text = createNode(new Text(data), this);
|
|
40
|
+
this[HOOKS].createText?.(text, String(data));
|
|
41
|
+
return text;
|
|
40
42
|
}
|
|
41
43
|
createComment(data) {
|
|
42
44
|
return createNode(new Comment(data), this);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IS_TRUSTED, LISTENERS } from './constants.esnext';
|
|
1
|
+
import { IS_TRUSTED, PATH, STOP_IMMEDIATE_PROPAGATION, LISTENERS } from './constants.esnext';
|
|
2
2
|
|
|
3
3
|
var EventPhase = /* @__PURE__ */ ((EventPhase2) => {
|
|
4
4
|
EventPhase2[EventPhase2["NONE"] = 0] = "NONE";
|
|
@@ -36,23 +36,24 @@ class Event {
|
|
|
36
36
|
composed = false;
|
|
37
37
|
defaultPrevented = false;
|
|
38
38
|
cancelBubble = false;
|
|
39
|
-
immediatePropagationStopped = false;
|
|
40
39
|
eventPhase = 0;
|
|
41
|
-
path = [];
|
|
42
40
|
// private inPassiveListener = false;
|
|
43
41
|
data;
|
|
42
|
+
[PATH] = [];
|
|
44
43
|
[IS_TRUSTED];
|
|
45
|
-
|
|
46
|
-
return this.path;
|
|
47
|
-
}
|
|
44
|
+
[STOP_IMMEDIATE_PROPAGATION] = false;
|
|
48
45
|
get isTrusted() {
|
|
49
46
|
return this[IS_TRUSTED];
|
|
50
47
|
}
|
|
48
|
+
composedPath() {
|
|
49
|
+
return this[PATH];
|
|
50
|
+
}
|
|
51
51
|
stopPropagation() {
|
|
52
52
|
this.cancelBubble = true;
|
|
53
53
|
}
|
|
54
54
|
stopImmediatePropagation() {
|
|
55
|
-
this
|
|
55
|
+
this[STOP_IMMEDIATE_PROPAGATION] = true;
|
|
56
|
+
this.cancelBubble = true;
|
|
56
57
|
}
|
|
57
58
|
preventDefault() {
|
|
58
59
|
this.defaultPrevented = true;
|
|
@@ -70,33 +71,26 @@ class Event {
|
|
|
70
71
|
this.cancelable = Boolean(cancelable);
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
function fireEvent(event,
|
|
74
|
-
const listeners =
|
|
74
|
+
function fireEvent(event, currentTarget, phase) {
|
|
75
|
+
const listeners = currentTarget[LISTENERS];
|
|
75
76
|
const list = listeners?.get(
|
|
76
77
|
`${event.type}${phase === 1 /* CAPTURING_PHASE */ ? CAPTURE_MARKER : ""}`
|
|
77
78
|
);
|
|
78
|
-
if (!list) return
|
|
79
|
-
let defaultPrevented = false;
|
|
79
|
+
if (!list) return;
|
|
80
80
|
for (const listener of list) {
|
|
81
|
-
event.eventPhase = phase;
|
|
82
|
-
event.currentTarget =
|
|
81
|
+
event.eventPhase = event.target === currentTarget ? 2 /* AT_TARGET */ : phase;
|
|
82
|
+
event.currentTarget = currentTarget;
|
|
83
83
|
try {
|
|
84
84
|
if (typeof listener === "object") {
|
|
85
85
|
listener.handleEvent(event);
|
|
86
86
|
} else {
|
|
87
|
-
listener.call(
|
|
87
|
+
listener.call(currentTarget, event);
|
|
88
88
|
}
|
|
89
89
|
} catch (err) {
|
|
90
90
|
setTimeout(thrower, 0, err);
|
|
91
91
|
}
|
|
92
|
-
if (event
|
|
93
|
-
defaultPrevented = true;
|
|
94
|
-
}
|
|
95
|
-
if (event.immediatePropagationStopped) {
|
|
96
|
-
break;
|
|
97
|
-
}
|
|
92
|
+
if (event[STOP_IMMEDIATE_PROPAGATION]) break;
|
|
98
93
|
}
|
|
99
|
-
return defaultPrevented;
|
|
100
94
|
}
|
|
101
95
|
function thrower(error) {
|
|
102
96
|
throw error;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LISTENERS, OWNER_DOCUMENT, HOOKS } from './constants.esnext';
|
|
1
|
+
import { LISTENERS, OWNER_DOCUMENT, HOOKS, PATH } from './constants.esnext';
|
|
2
2
|
import { fireEvent, EventPhase, CAPTURE_MARKER } from './Event.esnext';
|
|
3
3
|
|
|
4
4
|
const ONCE_LISTENERS = Symbol("onceListeners");
|
|
@@ -70,22 +70,17 @@ class EventTarget {
|
|
|
70
70
|
}
|
|
71
71
|
event.target = this;
|
|
72
72
|
event.srcElement = this;
|
|
73
|
-
event
|
|
74
|
-
let
|
|
75
|
-
|
|
76
|
-
if (
|
|
77
|
-
defaultPrevented = true;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (fireEvent(event, this, EventPhase.AT_TARGET)) {
|
|
81
|
-
defaultPrevented = true;
|
|
73
|
+
event[PATH] = path;
|
|
74
|
+
for (let i = path.length; i--; ) {
|
|
75
|
+
fireEvent(event, path[i], EventPhase.CAPTURING_PHASE);
|
|
76
|
+
if (event.cancelBubble) return event.defaultPrevented;
|
|
82
77
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
78
|
+
const bubblePath = event.bubbles ? path : path.slice(0, 1);
|
|
79
|
+
for (let i = 0; i < bubblePath.length; i++) {
|
|
80
|
+
fireEvent(event, bubblePath[i], EventPhase.BUBBLING_PHASE);
|
|
81
|
+
if (event.cancelBubble) return event.defaultPrevented;
|
|
87
82
|
}
|
|
88
|
-
return
|
|
83
|
+
return event.defaultPrevented;
|
|
89
84
|
}
|
|
90
85
|
}
|
|
91
86
|
function removeEventListener(type, listener, options) {
|
|
@@ -46,6 +46,7 @@ class ParentNode extends ChildNode {
|
|
|
46
46
|
const children = this.children;
|
|
47
47
|
children.splice(children.indexOf(child), 1);
|
|
48
48
|
}
|
|
49
|
+
child.disconnectedCallback?.();
|
|
49
50
|
this[HOOKS].removeChild?.(this, child, childNodesIndex);
|
|
50
51
|
}
|
|
51
52
|
replaceChild(newChild, oldChild) {
|
|
@@ -120,6 +121,7 @@ class ParentNode extends ChildNode {
|
|
|
120
121
|
childNodes.push(child);
|
|
121
122
|
if (isElement) this.children.push(child);
|
|
122
123
|
}
|
|
124
|
+
child.connectedCallback?.();
|
|
123
125
|
this[HOOKS].insertChild?.(this, child, insertIndex);
|
|
124
126
|
}
|
|
125
127
|
}
|
|
@@ -11,6 +11,8 @@ const PARENT = Symbol("parent");
|
|
|
11
11
|
const DATA = Symbol("data");
|
|
12
12
|
const LISTENERS = Symbol("listeners");
|
|
13
13
|
const IS_TRUSTED = Symbol("isTrusted");
|
|
14
|
+
const PATH = Symbol("path");
|
|
15
|
+
const STOP_IMMEDIATE_PROPAGATION = Symbol("stop_immediate_propagation");
|
|
14
16
|
const CONTENT = Symbol("content");
|
|
15
17
|
const HOOKS = Symbol("hooks");
|
|
16
18
|
var NodeType = /* @__PURE__ */ ((NodeType2) => {
|
|
@@ -34,4 +36,4 @@ var NamespaceURI = /* @__PURE__ */ ((NamespaceURI2) => {
|
|
|
34
36
|
return NamespaceURI2;
|
|
35
37
|
})(NamespaceURI || {});
|
|
36
38
|
|
|
37
|
-
export { ATTRIBUTES, CHILD, CONTENT, DATA, HOOKS, IS_TRUSTED, LISTENERS, NAME, NEXT, NS, NamespaceURI, NodeType, OWNER_DOCUMENT, OWNER_ELEMENT, PARENT, PREV, VALUE };
|
|
39
|
+
export { ATTRIBUTES, CHILD, CONTENT, DATA, HOOKS, IS_TRUSTED, LISTENERS, NAME, NEXT, NS, NamespaceURI, NodeType, OWNER_DOCUMENT, OWNER_ELEMENT, PARENT, PATH, PREV, STOP_IMMEDIATE_PROPAGATION, VALUE };
|