UNPKG

billboard.js

Version:

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

75 lines (66 loc) 1.86 kB
/** * Copyright (c) 2017 ~ present NAVER Corp. * billboard.js project is licensed under the MIT license */ import {isArray, isObject} from "../../module/util"; export default { /** * Get and set x values for the chart. * @function x * @instance * @memberof Chart * @param {Array} x If x is given, x values of every target will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. * @returns {object} xs * @example * // Get current x values * chart.x(); * * // Update x values for all targets * chart.x([100, 200, 300, 400, ...]); */ x(x?: number[]): {[key: string]: number[]} { const $$ = this.internal; const {axis, data} = $$; const isCategorized = axis.isCustomX() && axis.isCategorized(); if (isArray(x)) { if (isCategorized) { this.categories(x); } else { $$.updateTargetX(data.targets, x); $$.redraw({ withUpdateOrgXDomain: true, withUpdateXDomain: true }); } } return isCategorized ? this.categories() : data.xs; }, /** * Get and set x values for the chart. * @function xs * @instance * @memberof Chart * @param {Array} xs If xs is given, specified target's x values will be updated. If no argument is given, current x values will be returned as an Object whose keys are the target ids. * @returns {object} xs * @example * // Get current x values * chart.xs(); * * // Update x values for all targets * chart.xs({ * data1: [10, 20, 30, 40, ...], * data2: [100, 200, 300, 400, ...] * }); */ xs(xs?: {[key: string]: number[]}): {[key: string]: number[]} { const $$ = this.internal; if (isObject(xs)) { $$.updateTargetXs($$.data.targets, xs); $$.redraw({ withUpdateOrgXDomain: true, withUpdateXDomain: true }); } return $$.data.xs; } };