mirror of https://github.com/masayuki0812/c3.git
Quite good looking graph derived from d3.js
http://c3js.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.6 KiB
64 lines
1.6 KiB
import { |
|
CLASS, |
|
isValue, |
|
isFunction, |
|
isString, |
|
isUndefined, |
|
isDefined, |
|
ceil10, |
|
asHalfPixel, |
|
diffDomain, |
|
isEmpty, |
|
notEmpty, |
|
getOption, |
|
hasValue, |
|
sanitise, |
|
getPathBox, |
|
ChartInternal |
|
} from '../chartinternal.js'; |
|
|
|
const resize = function (size) { |
|
let $$ = this.internal, config = $$.config; |
|
config.size_width = size ? size.width : null; |
|
config.size_height = size ? size.height : null; |
|
this.flush(); |
|
}; |
|
|
|
const flush = function () { |
|
const $$ = this.internal; |
|
$$.updateAndRedraw({ withLegend: true, withTransition: false, withTransitionForTransform: false }); |
|
}; |
|
|
|
const destroy = function () { |
|
const $$ = this.internal; |
|
|
|
window.clearInterval($$.intervalForObserveInserted); |
|
|
|
if ($$.resizeTimeout !== undefined) { |
|
window.clearTimeout($$.resizeTimeout); |
|
} |
|
|
|
if (window.detachEvent) { |
|
window.detachEvent('onresize', $$.resizeFunction); |
|
} else if (window.removeEventListener) { |
|
window.removeEventListener('resize', $$.resizeFunction); |
|
} else { |
|
const wrapper = window.onresize; |
|
// check if no one else removed our wrapper and remove our resizeFunction from it |
|
if (wrapper && wrapper.add && wrapper.remove) { |
|
wrapper.remove($$.resizeFunction); |
|
} |
|
} |
|
|
|
$$.selectChart.classed('c3', false).html(''); |
|
|
|
// MEMO: this is needed because the reference of some elements will not be released, |
|
// then memory leak will happen. |
|
Object.keys($$).forEach((key) => { |
|
$$[key] = null; |
|
}); |
|
|
|
return null; |
|
}; |
|
|
|
export { resize, flush, destroy };
|
|
|