Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/webroot/rsrc/js/phui/behavior-phui-dropdown-menu.js
12241 views
1
/**
2
* @provides javelin-behavior-phui-dropdown-menu
3
* @requires javelin-behavior
4
* javelin-stratcom
5
* javelin-dom
6
* phuix-dropdown-menu
7
*/
8
9
JX.behavior('phui-dropdown-menu', function() {
10
11
JX.Stratcom.listen('click', 'phui-dropdown-menu', function(e) {
12
var data = e.getNodeData('phui-dropdown-menu');
13
if (data.menu) {
14
return;
15
}
16
17
e.kill();
18
19
var list;
20
var placeholder;
21
if (data.items) {
22
list = JX.$H(data.items).getFragment().firstChild;
23
} else {
24
list = JX.$(data.menuID);
25
placeholder = JX.$N('span');
26
}
27
28
var icon = e.getNode('phui-dropdown-menu');
29
data.menu = new JX.PHUIXDropdownMenu(icon);
30
31
data.menu.listen('open', function() {
32
if (placeholder) {
33
JX.DOM.replace(list, placeholder);
34
}
35
data.menu.setContent(list);
36
});
37
38
data.menu.listen('close', function() {
39
if (placeholder) {
40
JX.DOM.replace(placeholder, list);
41
}
42
});
43
44
data.menu.open();
45
});
46
47
});
48
49