UNPKG

billboard.js

Version:

Re-usable easy interface JavaScript chart library, based on D3 v4+

153 lines (151 loc) 3.93 kB
/*! * Copyright (c) 2017 ~ present NAVER Corp. * billboard.js project is licensed under the MIT license * * billboard.js, JavaScript chart library * https://naver.github.io/billboard.js/ * * @version 4.0.1 */ /** * Copyright (c) 2017 ~ present NAVER Corp. * billboard.js project is licensed under the MIT license */ /** * Chart type constant * @private */ const TYPE = { AREA: "area", AREA_LINE_RANGE: "area-line-range", AREA_SPLINE: "area-spline", AREA_SPLINE_RANGE: "area-spline-range", AREA_STEP: "area-step", AREA_STEP_RANGE: "area-step-range", BAR: "bar", BUBBLE: "bubble", CANDLESTICK: "candlestick", DONUT: "donut", FUNNEL: "funnel", GAUGE: "gauge", LINE: "line", PIE: "pie", POLAR: "polar", RADAR: "radar", SCATTER: "scatter", SPLINE: "spline", STEP: "step", TREEMAP: "treemap" }; /** * Optional API modules and their resolver module name. * Used by checkApiModuleImport() to surface a helpful error when a user calls * chart.export() / chart.flow() without importing the matching resolver. * @private */ const API_MODULE_NEEDED = { export: "exportApi", flow: "flow", xgrids: "grid", ygrids: "grid", regions: "regions", category: "category", categories: "category" }; /** * Axis rendering constants shared by SVG and canvas renderers. * @private */ const AXIS_DEFAULT_TICK_COUNT = 10; const AXIS_TICK_SIZE = 6; const AXIS_TICK_PADDING = 3; const AXIS_TICK_LENGTH = AXIS_TICK_SIZE + AXIS_TICK_PADDING; const AXIS_TICK_LINE_OVERLAP_PADDING = 1; /** * Subchart brush handle path constants shared by SVG and canvas renderers. * @private */ const SUBCHART_BRUSH_HANDLE_PATH = { x: { start: "M0 -8.5 A6 6 0 0 0 -6.5 -3.5 V2.5 A6 6 0 0 0 0 8.5 Z M-2 -3.5 V3.5 M-4 -3.5 V3.5z", end: "M0 -8.5 A6 6 0 0 1 6.5 -3.5 V2.5 A6 6 0 0 1 0 8.5 Z M2 -3.5 V3.5 M4 -3.5 V3.5z" }, y: { start: "M8.5 0 a6 6 0 0 0 -6 -6.5 H-2.5 a 6 6 0 0 0 -6 6.5 z m-5 -2 H-3.5 m7 -2 H-3.5z", end: "M8.5 0 a6 -6 0 0 1 -6 6.5 H-2.5 a 6 -6 0 0 1 -6 -6.5z m-5 2 H-3.5 m7 2 H-3.5z" } }; /** * Chart type module and its method from ChartInternal class, needed to be initialized. * @private */ const TYPE_METHOD_NEEDED = { AREA: "initArea", AREA_LINE_RANGE: "initArea", AREA_SPLINE: "initArea", AREA_SPLINE_RANGE: "initArea", AREA_STEP: "initArea", AREA_STEP_RANGE: "initArea", BAR: "initBar", BUBBLE: "initCircle", CANDLESTICK: "initCandlestick", DONUT: "initArc", FUNNEL: "initFunnel", GAUGE: "initArc", LINE: "initLine", PIE: "initArc", POLAR: "initPolar", RADAR: "initCircle", SCATTER: "initCircle", SPLINE: "initLine", STEP: "initLine", TREEMAP: "initTreemap" }; /** * chart types by category * @private */ const TYPE_BY_CATEGORY = { Area: [ TYPE.AREA, TYPE.AREA_SPLINE, TYPE.AREA_SPLINE_RANGE, TYPE.AREA_LINE_RANGE, TYPE.AREA_STEP, TYPE.AREA_STEP_RANGE ], AreaRange: [ TYPE.AREA_SPLINE_RANGE, TYPE.AREA_LINE_RANGE, TYPE.AREA_STEP_RANGE ], Arc: [ TYPE.PIE, TYPE.DONUT, TYPE.GAUGE, TYPE.POLAR, TYPE.RADAR ], Line: [ TYPE.LINE, TYPE.SPLINE, TYPE.AREA, TYPE.AREA_SPLINE, TYPE.AREA_SPLINE_RANGE, TYPE.AREA_LINE_RANGE, TYPE.STEP, TYPE.AREA_STEP, TYPE.AREA_STEP_RANGE ], Step: [ TYPE.STEP, TYPE.AREA_STEP, TYPE.AREA_STEP_RANGE ], Spline: [ TYPE.SPLINE, TYPE.AREA_SPLINE, TYPE.AREA_SPLINE_RANGE ] }; export { API_MODULE_NEEDED, AXIS_DEFAULT_TICK_COUNT, AXIS_TICK_LENGTH, AXIS_TICK_LINE_OVERLAP_PADDING, AXIS_TICK_PADDING, AXIS_TICK_SIZE, SUBCHART_BRUSH_HANDLE_PATH, TYPE, TYPE_BY_CATEGORY, TYPE_METHOD_NEEDED };