UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

52 lines (51 loc) 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createContinuousScaleGetAxisFilter = createContinuousScaleGetAxisFilter; exports.createDiscreteScaleGetAxisFilter = createDiscreteScaleGetAxisFilter; exports.createGetAxisFilters = void 0; var _isDefined = require("../../../isDefined"); function createDiscreteScaleGetAxisFilter(axisData, zoomStart, zoomEnd, direction) { const maxIndex = axisData?.length ?? 0; const minVal = Math.floor(zoomStart * maxIndex / 100); const maxVal = Math.ceil(zoomEnd * maxIndex / 100); return function filterAxis(value, dataIndex) { const val = value[direction] ?? axisData?.[dataIndex]; if (val == null) { // If the value does not exist because of missing data point, or out of range index, we just ignore. return true; } return dataIndex >= minVal && dataIndex < maxVal; }; } function createContinuousScaleGetAxisFilter(domain, zoomStart, zoomEnd, direction, axisData) { const min = domain[0].valueOf(); const max = domain[1].valueOf(); const minVal = min + zoomStart * (max - min) / 100; const maxVal = min + zoomEnd * (max - min) / 100; return function filterAxis(value, dataIndex) { const val = value[direction] ?? axisData?.[dataIndex]; if (val == null) { // If the value does not exist because of missing data point, or out of range index, we just ignore. return true; } return val >= minVal && val <= maxVal; }; } const createGetAxisFilters = filters => ({ currentAxisId, seriesXAxisId, seriesYAxisId, isDefaultAxis }) => { return (value, dataIndex) => { const axisId = currentAxisId === seriesXAxisId ? seriesYAxisId : seriesXAxisId; if (!axisId || isDefaultAxis) { return Object.values(filters ?? {})[0]?.(value, dataIndex) ?? true; } const data = [seriesYAxisId, seriesXAxisId].filter(id => id !== currentAxisId).map(id => filters[id ?? '']).filter(_isDefined.isDefined); return data.every(f => f(value, dataIndex)); }; }; exports.createGetAxisFilters = createGetAxisFilters;