UNPKG

1.76 kBJavaScriptView Raw
1window.addEventListener('load', function () {
2 Tooltip.init();
3
4 var zoomOutDisabled = true;
5
6 var treemap = new CarrotSearchFoamTree({
7 id: 'treemap',
8 layout: 'squarified',
9 stacking: 'flattened',
10 maxGroupLevelsDrawn: Number.MAX_VALUE,
11 maxGroupLabelLevelsDrawn: Number.MAX_VALUE,
12 groupLabelVerticalPadding: 0.2,
13 rolloutDuration: 0,
14 pullbackDuration: 0,
15 fadeDuration: 0,
16 zoomMouseWheelDuration: 300,
17 openCloseDuration: 200,
18 dataObject: {
19 groups: window.chartData
20 },
21
22 titleBarDecorator: function (opts, props, vars) {
23 vars.titleBarShown = false;
24 },
25
26 onGroupClick: function (event) {
27 preventDefault(event);
28 zoomOutDisabled = false;
29 treemap.zoom(event.group);
30 },
31
32 onGroupDoubleClick: preventDefault,
33
34 onGroupHover: function (event) {
35 var group = event.group;
36
37 if (group) {
38 Tooltip.show(
39 '<b>' + group.label + '</b><br>' +
40 (group.parsedSize === undefined ? '' : '<br>Parsed size: <b>' + filesize(group.parsedSize) + '</b>') +
41 '<br>Stat size: <b>' + filesize(group.statSize) + '</b>' +
42 (group.path ? '<br>Path: <b>' + group.path + '</b>' : '')
43 );
44 } else {
45 Tooltip.hide();
46 }
47 },
48
49 onGroupMouseWheel: function (event) {
50 var isZoomOut = (event.delta < 0);
51
52 if (isZoomOut) {
53 if (zoomOutDisabled) return preventDefault(event);
54
55 if (this.get('viewport').scale < 1) {
56 zoomOutDisabled = true;
57 preventDefault(event);
58 }
59 } else {
60 zoomOutDisabled = false;
61 }
62 }
63 });
64
65 window.addEventListener('resize', treemap.resize);
66
67 function preventDefault(event) {
68 event.preventDefault();
69 }
70}, false);