1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
const { DOM: dom, createClass, PropTypes, createFactory } = require("devtools/client/shared/vendor/react");
const Tree = createFactory(require("devtools/client/shared/components/tree"));
const CensusTreeItem = createFactory(require("./census-tree-item"));
const { createParentMap } = require("../utils");
const { TREE_ROW_HEIGHT } = require("../constants");
const { censusModel, diffingModel } = require("../models");
const Census = module.exports = createClass({
displayName: "Census",
propTypes: {
census: censusModel,
onExpand: PropTypes.func.isRequired,
onCollapse: PropTypes.func.isRequired,
onFocus: PropTypes.func.isRequired,
onViewSourceInDebugger: PropTypes.func.isRequired,
onViewIndividuals: PropTypes.func.isRequired,
diffing: diffingModel,
},
render() {
let {
census,
onExpand,
onCollapse,
onFocus,
diffing,
onViewSourceInDebugger,
onViewIndividuals,
} = this.props;
const report = census.report;
let parentMap = census.parentMap;
const { totalBytes, totalCount } = report;
const getPercentBytes = totalBytes === 0
? _ => 0
: bytes => (bytes / totalBytes) * 100;
const getPercentCount = totalCount === 0
? _ => 0
: count => (count / totalCount) * 100;
return Tree({
autoExpandDepth: 0,
focused: census.focused,
getParent: node => {
const parent = parentMap[node.id];
return parent === report ? null : parent;
},
getChildren: node => node.children || [],
isExpanded: node => census.expanded.has(node.id),
onExpand,
onCollapse,
onFocus,
renderItem: (item, depth, focused, arrow, expanded) =>
new CensusTreeItem({
onViewSourceInDebugger,
item,
depth,
focused,
arrow,
expanded,
getPercentBytes,
getPercentCount,
diffing,
inverted: census.display.inverted,
onViewIndividuals,
}),
getRoots: () => report.children || [],
getKey: node => node.id,
itemHeight: TREE_ROW_HEIGHT,
});
}
});
|