You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
2.7 KiB
JavaScript

3 months ago
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
require("../extend/index");
var _cRender = _interopRequireDefault(require("@jiaminghi/c-render"));
var _util = require("@jiaminghi/c-render/lib/plugin/util");
var _core = require("../core");
var Charts = function Charts(dom) {
(0, _classCallCheck2["default"])(this, Charts);
if (!dom) {
console.error('Charts Missing parameters!');
return false;
}
var clientWidth = dom.clientWidth,
clientHeight = dom.clientHeight;
var canvas = document.createElement('canvas');
canvas.setAttribute('width', clientWidth);
canvas.setAttribute('height', clientHeight);
dom.appendChild(canvas);
var attribute = {
container: dom,
canvas: canvas,
render: new _cRender["default"](canvas),
option: null
};
Object.assign(this, attribute);
};
/**
* @description Set chart option
* @param {Object} option Chart option
* @param {Boolean} animationEnd Execute animationEnd
* @return {Undefined} No return
*/
exports["default"] = Charts;
Charts.prototype.setOption = function (option) {
var animationEnd = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!option || (0, _typeof2["default"])(option) !== 'object') {
console.error('setOption Missing parameters!');
return false;
}
if (animationEnd) this.render.graphs.forEach(function (graph) {
return graph.animationEnd();
});
var optionCloned = (0, _util.deepClone)(option, true);
(0, _core.mergeColor)(this, optionCloned);
(0, _core.grid)(this, optionCloned);
(0, _core.axis)(this, optionCloned);
(0, _core.radarAxis)(this, optionCloned);
(0, _core.title)(this, optionCloned);
(0, _core.bar)(this, optionCloned);
(0, _core.line)(this, optionCloned);
(0, _core.pie)(this, optionCloned);
(0, _core.radar)(this, optionCloned);
(0, _core.gauge)(this, optionCloned);
(0, _core.legend)(this, optionCloned);
this.option = option;
this.render.launchAnimation(); // console.warn(this)
};
/**
* @description Resize chart
* @return {Undefined} No return
*/
Charts.prototype.resize = function () {
var container = this.container,
canvas = this.canvas,
render = this.render,
option = this.option;
var clientWidth = container.clientWidth,
clientHeight = container.clientHeight;
canvas.setAttribute('width', clientWidth);
canvas.setAttribute('height', clientHeight);
render.area = [clientWidth, clientHeight];
this.setOption(option);
};