Projekt

Obecné

Profil

Stáhnout (2.04 KB) Statistiky
| Větev: | Tag: | Revize:
1 8cca41c0 Štěpán Červenka
import {Graph} from './graph';
2
import {EmptyGraph} from "./emptygraph";
3
import {SingleGraph} from "./singlegraph";
4
import {MultiGraph} from "./multigraph";
5 72effbbe Štěpán Červenka
6 8cca41c0 Štěpán Červenka
declare var require: any
7 72effbbe Štěpán Červenka
8
9
10 8cca41c0 Štěpán Červenka
export class GraphLoader {
11 72effbbe Štěpán Červenka
12
13 66c042f1 Štěpán Červenka
  static getGraphType(sensors, data, legend, isAnalytics): Graph {
14 8cca41c0 Štěpán Červenka
    if (sensors == null) {
15
      return new EmptyGraph("Selected no sensors.");
16 72effbbe Štěpán Červenka
17 66c042f1 Štěpán Červenka
    }  else if (Array.isArray(sensors)) {
18 8cca41c0 Štěpán Červenka
      if (sensors.length == 0) {
19
        return new EmptyGraph("Selected no sensors.");
20
      } else if (sensors.length == 1) {
21 66c042f1 Štěpán Červenka
        return new SingleGraph(sensors[0], isAnalytics, data, legend,10000);
22 8cca41c0 Štěpán Červenka
      } else {
23 66c042f1 Štěpán Červenka
        return new MultiGraph(isAnalytics, data, legend,10000);
24 8cca41c0 Štěpán Červenka
      }
25 72effbbe Štěpán Červenka
26
    } else {
27 66c042f1 Štěpán Červenka
      return new SingleGraph(sensors, isAnalytics, data, legend, 10000);
28 72effbbe Štěpán Červenka
    }
29
  }
30
31 b4b32b0e Štěpán Červenka
32 66c042f1 Štěpán Červenka
  static getGraph(sensors, data, legendInfo, element, isAnalytics) {
33
    let graph = this.getGraphType(sensors,data, legendInfo, isAnalytics);
34 8cca41c0 Štěpán Červenka
    let config = graph.getConfig();
35
    let spec = graph.getSpec();
36 66c042f1 Štěpán Červenka
37 ec939478 Štěpán Červenka
38
    this.showGraph(spec, config, element);
39
40
  }
41
42
43
  static showGraph(spec, config, element) {
44
    const vega = require('vega');
45
    const vegaTooltip = require('vega-tooltip');
46 b4b32b0e Štěpán Červenka
    const handler = new vegaTooltip.Handler();
47
48
    const loc = vega.locale({
49
      decimal: ',',
50
      thousands: '\u00a0',
51
      grouping: [3],
52
      currency: ['', '\u00a0Kč']
53
    },{
54
      dateTime: '%A,%e.%B %Y, %X',
55
      date: '%-d.%-m.%Y',
56
      time: '%H:%M:%S',
57
      periods: ['AM', 'PM'],
58
      days: ['neděle', 'pondělí', 'úterý', 'středa', 'čvrtek', 'pátek', 'sobota'],
59
      shortDays: ['ne.', 'po.', 'út.', 'st.', 'čt.', 'pá.', 'so.'],
60
      months: ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'],
61
      shortMonths: ['led', 'úno', 'břez', 'dub', 'kvě', 'čer', 'červ', 'srp', 'zář', 'říj', 'list', 'pros']
62
    });
63
64
    const view = new vega.View(vega.parse(spec, config))
65
      .tooltip(handler.call)
66
      .initialize(element)
67
      .hover()
68
      .locale(loc)
69
      .runAsync();
70 ec939478 Štěpán Červenka
  }
71 b4b32b0e Štěpán Červenka
72
73
74 72effbbe Štěpán Červenka
}