Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81144 views
1
NW.Dom.shortcuts = (function() {
2
3
// match missing R/L context
4
var nextID = 0,
5
reLeftContext = /^[\x20\t\n\r\f]*[>+~]/,
6
reRightContext = /[>+~][\x20\t\n\r\f]*$/;
7
8
return function(selector, from, alt) {
9
10
// add left context if missing
11
if (reLeftContext.test(selector)) {
12
if (from.nodeType == 9) {
13
selector = '* ' + selector;
14
} else if (/html|body/i.test(from.nodeName)) {
15
selector = from.nodeName + ' ' + selector;
16
} else if (alt) {
17
selector = NW.Dom.shortcuts(selector, alt);
18
} else if (from.nodeType == 1 && from.id) {
19
selector = '#' + from.id + ' ' + selector;
20
} else {
21
++nextID;
22
selector = '#' + (from.id = 'NW' + nextID) + ' ' + selector;
23
//NW.Dom.emit('Unable to resolve a context for the shortcut selector "' + selector + '"');
24
}
25
}
26
27
// add right context if missing
28
if (reRightContext.test(selector)) {
29
selector += ' *';
30
}
31
32
return selector;
33
};
34
35
})();
36
37