Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/webroot/rsrc/js/phui/behavior-phui-submenu.js
12241 views
1
/**
2
* @provides javelin-behavior-phui-submenu
3
* @requires javelin-behavior
4
* javelin-stratcom
5
* javelin-dom
6
*/
7
8
JX.behavior('phui-submenu', function() {
9
10
JX.Stratcom.listen('click', 'phui-submenu', function(e) {
11
if (!e.isNormalClick()) {
12
return;
13
}
14
15
var node = e.getNode('phui-submenu');
16
var data = e.getNodeData('phui-submenu');
17
18
e.kill();
19
20
data.open = !data.open;
21
22
for (var ii = 0; ii < data.itemIDs.length; ii++) {
23
var id = data.itemIDs[ii];
24
var item = JX.$(id);
25
if (data.open) {
26
JX.DOM.show(item);
27
} else {
28
JX.DOM.hide(item);
29
}
30
31
// Add a class so we can animate zany effects.
32
JX.DOM.alterClass(item, 'phui-submenu-animate', data.open);
33
}
34
35
JX.DOM.alterClass(node, 'phui-submenu-open', data.open);
36
37
// Toggle the caret from ">" to "V" when opening the menu, and back again
38
// when closing it.
39
var caret = JX.$(data.caretID);
40
JX.DOM.alterClass(caret, 'caret', data.open);
41
JX.DOM.alterClass(caret, 'caret-right', !data.open);
42
});
43
44
});
45
46