UNPKG

compassql

Version:

CompassQL visualization query language

47 lines (42 loc) 1.43 kB
import {hasDiscreteDomain} from 'vega-lite/build/src/scale'; import * as TYPE from 'vega-lite/build/src/type'; import {FieldQuery, scaleType} from '../../query/encoding'; import {ExpandedType} from '../../query/expandedtype'; /** * Finer grained data types that takes binning and timeUnit into account. */ export enum ExtendedType { Q = TYPE.QUANTITATIVE as any, BIN_Q = ('bin_' + TYPE.QUANTITATIVE) as any, T = TYPE.TEMPORAL as any, /** * Time Unit Temporal Field with time scale. */ TIMEUNIT_T = 'timeUnit_time' as any, /** * Time Unit Temporal Field with ordinal scale. */ TIMEUNIT_O = ('timeUnit_' + TYPE.ORDINAL) as any, O = TYPE.ORDINAL as any, N = TYPE.NOMINAL as any, K = ExpandedType.KEY as any, NONE = '-' as any } export const Q = ExtendedType.Q; export const BIN_Q = ExtendedType.BIN_Q; export const T = ExtendedType.T; export const TIMEUNIT_T = ExtendedType.TIMEUNIT_T; export const TIMEUNIT_O = ExtendedType.TIMEUNIT_O; export const O = ExtendedType.O; export const N = ExtendedType.N; export const K = ExtendedType.K; export const NONE = ExtendedType.NONE; export function getExtendedType(fieldQ: FieldQuery): ExtendedType { if (fieldQ.bin) { return ExtendedType.BIN_Q; } else if (fieldQ.timeUnit) { const sType = scaleType(fieldQ); return hasDiscreteDomain(sType) ? ExtendedType.TIMEUNIT_O : ExtendedType.TIMEUNIT_T; } return fieldQ.type as ExtendedType; }