UNPKG

compassql

Version:

CompassQL visualization query language

38 lines (34 loc) 1.06 kB
import {Dict} from '../../util'; import {Scorer} from './base'; import {SpecQueryModel} from '../../model'; import {Schema} from '../../schema'; import {QueryConfig} from '../../config'; import {FeatureScore} from '../ranking'; import {isFieldQuery, isAutoCountQuery} from '../../query/encoding'; /** * Effectivenss score that penalize size for bar and tick */ export class SizeChannelScorer extends Scorer { constructor() { super('SizeChannel'); } protected initScore() { return { bar_size: -2, tick_size: -2 } as Dict<number>; } public getScore(specM: SpecQueryModel, _: Schema, __: QueryConfig): FeatureScore[] { const mark = specM.getMark(); return specM.getEncodings().reduce((featureScores, encQ) => { if (isFieldQuery(encQ) || isAutoCountQuery(encQ)) { const feature = mark + '_' + encQ.channel; const featureScore = this.getFeatureScore(feature); if (featureScore) { featureScores.push(featureScore); } } return featureScores; }, []); } }