UNPKG

@formant/ava

Version:

A framework for automated visual analytics.

38 lines (37 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.seriesQtyLimit = void 0; var utils_1 = require("../../utils"); var constants_1 = require("./constants"); var applyChartTypes = ['pie_chart', 'donut_chart', 'radar_chart', 'rose_chart']; exports.seriesQtyLimit = { id: 'series-qty-limit', type: 'SOFT', docs: { lintText: 'Some charts should has at most N values for the series.', }, trigger: function (_a) { var chartType = _a.chartType; return applyChartTypes.includes(chartType); }, validator: function (args) { var result = 1; var dataProps = args.dataProps, chartType = args.chartType; var limit = args.limit; if (!Number.isInteger(limit) || limit <= 0) { limit = 6; if (chartType === 'pie_chart' || chartType === 'donut_chart' || chartType === 'rose_chart') limit = 6; if (chartType === 'radar_chart') limit = 8; } if (dataProps) { var field4Series = dataProps.find(function (field) { return (0, utils_1.hasSubset)(field.levelOfMeasurements, ['Nominal']); }); var seriesQty = field4Series && field4Series.count ? field4Series.count : 0; if (seriesQty >= 2 && seriesQty <= limit) { result = constants_1.MAX_SOFT_RULE_COEFFICIENT * 0.5 + 2 / seriesQty; } } return result; }, };