marko 5.19.3 → 5.20.4
Sign up to get free protection for your applications and to get access to all the features.
@@ -79,16 +79,6 @@ function addDelegatedEventHandlerToHost(eventType, host) {
|
|
79
79
|
(host.body || host).addEventListener(
|
80
80
|
eventType,
|
81
81
|
listeners[eventType] = function (event) {
|
82
|
-
var propagationStopped = false;
|
83
|
-
|
84
|
-
// Monkey-patch to fix #97
|
85
|
-
var oldStopPropagation = event.stopPropagation;
|
86
|
-
|
87
|
-
event.stopPropagation = function () {
|
88
|
-
oldStopPropagation.call(event);
|
89
|
-
propagationStopped = true;
|
90
|
-
};
|
91
|
-
|
92
82
|
var curNode = event.target;
|
93
83
|
if (!curNode) {
|
94
84
|
return;
|
@@ -111,15 +101,29 @@ function addDelegatedEventHandlerToHost(eventType, host) {
|
|
111
101
|
// Attributes will have the following form:
|
112
102
|
// on<event_type>("<target_method>|<component_id>")
|
113
103
|
|
114
|
-
|
115
|
-
|
116
|
-
|
104
|
+
if (event.bubbles) {
|
105
|
+
var propagationStopped = false;
|
106
|
+
|
107
|
+
// Monkey-patch to fix #97
|
108
|
+
var oldStopPropagation = event.stopPropagation;
|
117
109
|
|
118
|
-
|
119
|
-
|
110
|
+
event.stopPropagation = function () {
|
111
|
+
oldStopPropagation.call(event);
|
112
|
+
propagationStopped = true;
|
113
|
+
};
|
114
|
+
|
115
|
+
do {
|
116
|
+
if (target = getEventFromEl(curNode, propName)) {
|
117
|
+
delegateEvent(curNode, propName, target, event);
|
118
|
+
|
119
|
+
if (propagationStopped) {
|
120
|
+
break;
|
121
|
+
}
|
120
122
|
}
|
121
|
-
}
|
122
|
-
}
|
123
|
+
} while ((curNode = curNode.parentNode) && curNode.getAttribute);
|
124
|
+
} else if (target = getEventFromEl(curNode, propName)) {
|
125
|
+
delegateEvent(curNode, propName, target, event);
|
126
|
+
}
|
123
127
|
},
|
124
128
|
true);
|
125
129
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/runtime/components/event-delegation.js"],"names":["componentsUtil","require","runtimeId","componentLookup","getMarkoPropsFromEl","TEXT_NODE","listenersAttachedKey","delegatedEvents","getEventFromEl","el","eventName","virtualProps","eventInfo","split","length","parseInt","delegateEvent","node","target","event","targetMethod","targetComponentId","isOnce","extraArgs","targetComponent","targetFunc","Error","apply","concat","call","addDelegatedEventHandler","eventType","addDelegatedEventHandlerToHost","host","listeners","body","addEventListener","
|
1
|
+
{"version":3,"sources":["../../../src/runtime/components/event-delegation.js"],"names":["componentsUtil","require","runtimeId","componentLookup","getMarkoPropsFromEl","TEXT_NODE","listenersAttachedKey","delegatedEvents","getEventFromEl","el","eventName","virtualProps","eventInfo","split","length","parseInt","delegateEvent","node","target","event","targetMethod","targetComponentId","isOnce","extraArgs","targetComponent","targetFunc","Error","apply","concat","call","addDelegatedEventHandler","eventType","addDelegatedEventHandlerToHost","host","listeners","body","addEventListener","curNode","correspondingUseElement","nodeType","parentNode","propName","bubbles","propagationStopped","oldStopPropagation","stopPropagation","getAttribute","noop","exports","Object","keys","forEach"],"mappings":"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","sourcesContent":["var componentsUtil = require(\"./util\");\nvar runtimeId = componentsUtil.___runtimeId;\nvar componentLookup = componentsUtil.___componentLookup;\nvar getMarkoPropsFromEl = componentsUtil.___getMarkoPropsFromEl;\n\nvar TEXT_NODE = 3;\n\n// We make our best effort to allow multiple marko runtimes to be loaded in the\n// same window. Each marko runtime will get its own unique runtime ID.\nvar listenersAttachedKey = \"$MDE\" + runtimeId;\nvar delegatedEvents = {};\n\nfunction getEventFromEl(el, eventName) {\n var virtualProps = getMarkoPropsFromEl(el);\n var eventInfo = virtualProps[eventName];\n\n if (typeof eventInfo === \"string\") {\n eventInfo = eventInfo.split(\" \");\n if (eventInfo[2]) {\n eventInfo[2] = eventInfo[2] === \"true\";\n }\n if (eventInfo.length == 4) {\n eventInfo[3] = parseInt(eventInfo[3], 10);\n }\n }\n\n return eventInfo;\n}\n\nfunction delegateEvent(node, eventName, target, event) {\n var targetMethod = target[0];\n var targetComponentId = target[1];\n var isOnce = target[2];\n var extraArgs = target[3];\n\n if (isOnce) {\n var virtualProps = getMarkoPropsFromEl(node);\n delete virtualProps[eventName];\n }\n\n var targetComponent = componentLookup[targetComponentId];\n\n if (!targetComponent) {\n return;\n }\n\n var targetFunc =\n typeof targetMethod === \"function\"\n ? targetMethod\n : targetComponent[targetMethod];\n if (!targetFunc) {\n throw Error(\"Method not found: \" + targetMethod);\n }\n\n if (extraArgs != null) {\n if (typeof extraArgs === \"number\") {\n extraArgs = targetComponent.___bubblingDomEvents[extraArgs];\n }\n }\n\n // Invoke the component method\n if (extraArgs) {\n targetFunc.apply(targetComponent, extraArgs.concat(event, node));\n } else {\n targetFunc.call(targetComponent, event, node);\n }\n}\n\nfunction addDelegatedEventHandler(eventType) {\n if (!delegatedEvents[eventType]) {\n delegatedEvents[eventType] = true;\n }\n}\n\nfunction addDelegatedEventHandlerToHost(eventType, host) {\n var listeners = (host[listenersAttachedKey] =\n host[listenersAttachedKey] || {});\n if (!listeners[eventType]) {\n (host.body || host).addEventListener(\n eventType,\n (listeners[eventType] = function (event) {\n var curNode = event.target;\n if (!curNode) {\n return;\n }\n\n curNode =\n // event.target of an SVGElementInstance does not have a\n // `getAttribute` function in IE 11.\n // See https://github.com/marko-js/marko/issues/796\n curNode.correspondingUseElement ||\n // in some browsers the event target can be a text node\n // one example being dragenter in firefox.\n (curNode.nodeType === TEXT_NODE ? curNode.parentNode : curNode);\n\n // Search up the tree looking DOM events mapped to target\n // component methods\n var propName = \"on\" + eventType;\n var target;\n\n // Attributes will have the following form:\n // on<event_type>(\"<target_method>|<component_id>\")\n\n if (event.bubbles) {\n var propagationStopped = false;\n\n // Monkey-patch to fix #97\n var oldStopPropagation = event.stopPropagation;\n\n event.stopPropagation = function () {\n oldStopPropagation.call(event);\n propagationStopped = true;\n };\n\n do {\n if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n\n if (propagationStopped) {\n break;\n }\n }\n } while ((curNode = curNode.parentNode) && curNode.getAttribute);\n } else if ((target = getEventFromEl(curNode, propName))) {\n delegateEvent(curNode, propName, target, event);\n }\n }),\n true\n );\n }\n}\n\nfunction noop() {}\n\nexports.___handleNodeAttach = noop;\nexports.___handleNodeDetach = noop;\nexports.___delegateEvent = delegateEvent;\nexports.___getEventFromEl = getEventFromEl;\nexports.___addDelegatedEventHandler = addDelegatedEventHandler;\nexports.___init = function (host) {\n Object.keys(delegatedEvents).forEach(function (eventType) {\n addDelegatedEventHandlerToHost(eventType, host);\n });\n};\n"],"file":"event-delegation.js"}
|
package/package.json
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"name": "marko",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.20.4",
|
4
4
|
"license": "MIT",
|
5
5
|
"description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
|
6
6
|
"dependencies": {
|
7
|
-
"@marko/compiler": "^5.
|
8
|
-
"@marko/translator-default": "^5.
|
7
|
+
"@marko/compiler": "^5.20.4",
|
8
|
+
"@marko/translator-default": "^5.20.4",
|
9
9
|
"app-module-path": "^2.2.0",
|
10
10
|
"argly": "^1.2.0",
|
11
11
|
"browser-refresh-client": "1.1.4",
|
@@ -72,5 +72,5 @@
|
|
72
72
|
"index.js",
|
73
73
|
"node-require.js"
|
74
74
|
],
|
75
|
-
"gitHead": "
|
75
|
+
"gitHead": "5b79719f76e0c090f5c3ca7f94b8aee961dc1e41"
|
76
76
|
}
|
@@ -79,16 +79,6 @@ function addDelegatedEventHandlerToHost(eventType, host) {
|
|
79
79
|
(host.body || host).addEventListener(
|
80
80
|
eventType,
|
81
81
|
(listeners[eventType] = function (event) {
|
82
|
-
var propagationStopped = false;
|
83
|
-
|
84
|
-
// Monkey-patch to fix #97
|
85
|
-
var oldStopPropagation = event.stopPropagation;
|
86
|
-
|
87
|
-
event.stopPropagation = function () {
|
88
|
-
oldStopPropagation.call(event);
|
89
|
-
propagationStopped = true;
|
90
|
-
};
|
91
|
-
|
92
82
|
var curNode = event.target;
|
93
83
|
if (!curNode) {
|
94
84
|
return;
|
@@ -111,15 +101,29 @@ function addDelegatedEventHandlerToHost(eventType, host) {
|
|
111
101
|
// Attributes will have the following form:
|
112
102
|
// on<event_type>("<target_method>|<component_id>")
|
113
103
|
|
114
|
-
|
115
|
-
|
116
|
-
|
104
|
+
if (event.bubbles) {
|
105
|
+
var propagationStopped = false;
|
106
|
+
|
107
|
+
// Monkey-patch to fix #97
|
108
|
+
var oldStopPropagation = event.stopPropagation;
|
117
109
|
|
118
|
-
|
119
|
-
|
110
|
+
event.stopPropagation = function () {
|
111
|
+
oldStopPropagation.call(event);
|
112
|
+
propagationStopped = true;
|
113
|
+
};
|
114
|
+
|
115
|
+
do {
|
116
|
+
if ((target = getEventFromEl(curNode, propName))) {
|
117
|
+
delegateEvent(curNode, propName, target, event);
|
118
|
+
|
119
|
+
if (propagationStopped) {
|
120
|
+
break;
|
121
|
+
}
|
120
122
|
}
|
121
|
-
}
|
122
|
-
}
|
123
|
+
} while ((curNode = curNode.parentNode) && curNode.getAttribute);
|
124
|
+
} else if ((target = getEventFromEl(curNode, propName))) {
|
125
|
+
delegateEvent(curNode, propName, target, event);
|
126
|
+
}
|
123
127
|
}),
|
124
128
|
true
|
125
129
|
);
|