This repository was archived by the owner on Jul 30, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathexport.js
More file actions
123 lines (123 loc) · 7.75 KB
/
export.js
File metadata and controls
123 lines (123 loc) · 7.75 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Sample for chart export
*/
var React = require("react");
var ej2_react_charts_1 = require("@syncfusion/ej2-react-charts");
var ej2_react_buttons_1 = require("@syncfusion/ej2-react-buttons");
var ej2_react_dropdowns_1 = require("@syncfusion/ej2-react-dropdowns");
var theme_color_1 = require("./theme-color");
var property_pane_1 = require("../common/property-pane");
var sample_base_1 = require("../common/sample-base");
exports.data1 = [
{ x: 'DEU', y: 35.5 }, { x: 'CHN', y: 18.3 }, { x: 'ITA', y: 17.6 }, { x: 'JPN', y: 13.6 },
{ x: 'US', y: 12 }, { x: 'ESP', y: 5.6 }, { x: 'FRA', y: 4.6 }, { x: 'AUS', y: 3.3 },
{ x: 'BEL', y: 3 }, { x: 'UK', y: 2.9 }
];
var SAMPLE_CSS = "\n .control-fluid {\n\t\tpadding: 0px !important;\n }\n #btn-control {\n width: 100%;\n text-align: center;\n }\n .e-play-icon::before {\n content: \"\\e728\";\n }";
var Export = (function (_super) {
__extends(Export, _super);
function Export() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = [
{ value: 'JPEG' },
{ value: 'PNG' },
{ value: 'SVG' },
{ value: 'PDF' }
];
return _this;
}
Export.prototype.render = function () {
var _this = this;
return (React.createElement("div", { className: 'control-pane' },
React.createElement("style", null, SAMPLE_CSS),
React.createElement("div", { className: 'control-section row' },
React.createElement("div", { className: 'col-md-8' },
React.createElement(ej2_react_charts_1.ChartComponent, { id: 'charts', ref: function (chart) { return _this.chartInstance = chart; }, style: { textAlign: "center" }, primaryXAxis: {
title: 'Countries',
valueType: 'Category',
majorGridLines: { width: 0 }
}, chartArea: { border: { width: 0 } }, primaryYAxis: {
title: 'Measurements',
labelFormat: '{value}GW',
minimum: 0,
maximum: 40,
interval: 10,
majorGridLines: { width: 0 }
}, pointRender: this.labelRender.bind(this), load: this.load.bind(this), title: "Top 10 Countries Using Solar Power", loaded: this.onChartLoad.bind(this), tooltip: { enable: true } },
React.createElement(ej2_react_charts_1.Inject, { services: [ej2_react_charts_1.ColumnSeries, ej2_react_charts_1.Category, ej2_react_charts_1.Legend] }),
React.createElement(ej2_react_charts_1.SeriesCollectionDirective, null,
React.createElement(ej2_react_charts_1.SeriesDirective, { dataSource: exports.data1, xName: 'x', yName: 'y', width: 2, type: 'Column' })))),
React.createElement("div", { className: 'col-md-4 property-section' },
React.createElement(property_pane_1.PropertyPane, { title: 'Properties' },
React.createElement("table", { id: 'property', title: 'Properties', className: 'property-panel-table', style: { width: '100%' } },
React.createElement("tr", { style: { height: "50px" } },
React.createElement("td", { style: { width: "30%" } }, "Export Type:"),
React.createElement("td", { style: { width: "30%" } },
React.createElement(ej2_react_dropdowns_1.DropDownListComponent, { width: 120, id: "etype", value: "JPEG", ref: function (d) { return _this.mode = d; }, dataSource: this.type, fields: { text: 'value', value: 'value' }, placeholder: "JPEG" }))),
React.createElement("tr", { style: { height: "50px" } },
React.createElement("td", { style: { width: "40%" } }, "File Name:"),
React.createElement("td", { style: { width: "40%" } },
React.createElement("div", { className: "e-float-input", style: { width: 120, 'margin-top': '0px' } },
React.createElement("input", { type: "text", defaultValue: "Chart", id: "fileName", style: { "margin-left": "-10px" } })))),
React.createElement("tr", { style: { height: '50px' } },
React.createElement("td", null,
React.createElement("div", { id: "btn-control", style: { 'margin-left': '60px' } },
React.createElement(ej2_react_buttons_1.ButtonComponent, { onClick: this.onClick.bind(this), iconCss: 'e-icons e-play-icon', cssClass: 'e-flat', isPrimary: true }, "Export")))))))),
React.createElement("div", { id: "action-description" },
React.createElement("p", null,
"This sample illustrates the export feature in chart. By clicking ",
React.createElement("code", null, "Export"),
", you can export the chart in PNG or JPEG format.")),
React.createElement("div", { id: "description" },
React.createElement("p", null, "In this example, you can see how to render and configure the export. The rendered chart can be exported as either JPEG or PNG format. It can be achieved using Blob and it's supported only in modern browsers."),
React.createElement("p", null,
"More information on the export can be found in this",
React.createElement("a", { target: "_blank", href: "http://ej2.syncfusion.com/documentation/chart/api-series.html#type-chartseriestype" }, "documentation section"),
"."))));
};
Export.prototype.onChartLoad = function (args) {
var chart = document.getElementById('charts');
chart.setAttribute('title', '');
};
;
Export.prototype.load = function (args) {
var selectedTheme = location.hash.split('/')[1];
selectedTheme = selectedTheme ? selectedTheme : 'Material';
args.chart.theme = (selectedTheme.charAt(0).toUpperCase() + selectedTheme.slice(1));
};
;
Export.prototype.labelRender = function (args) {
var selectedTheme = location.hash.split('/')[1];
selectedTheme = selectedTheme ? selectedTheme : 'material';
if (selectedTheme && selectedTheme.indexOf('fabric') > -1) {
args.fill = theme_color_1.fabricColors[args.point.index % 10];
}
else if (selectedTheme === 'material') {
args.fill = theme_color_1.materialColors[args.point.index % 10];
}
else if (selectedTheme === 'highcontrast') {
args.fill = theme_color_1.highContrastColors[args.point.index % 10];
}
else {
args.fill = theme_color_1.bootstrapColors[args.point.index % 10];
}
};
Export.prototype.onClick = function (e) {
var fileName = document.getElementById('fileName').value;
this.chartInstance.export(this.mode.value, fileName);
};
return Export;
}(sample_base_1.SampleBase));
exports.Export = Export;