blob: 0f27fe21849514c4a48d6a8800fb56caa270ea46 [file] [log] [blame]
import Encoder from 'encodable/lib/encoders/Encoder';
import createEncoderFactory from 'encodable/lib/encoders/createEncoderFactory';
import { DeriveEncoding, DeriveChannelOutputs } from 'encodable/lib/types/Encoding';
export type LineEncodingConfig = {
x: ['X', number];
y: ['Y', number];
fill: ['Category', boolean];
stroke: ['Color', string];
strokeDasharray: ['Category', string];
strokeWidth: ['Numeric', number];
};
export const lineEncoderFactory = createEncoderFactory<LineEncodingConfig>({
channelTypes: {
x: 'X',
y: 'Y',
fill: 'Category',
stroke: 'Color',
strokeDasharray: 'Category',
strokeWidth: 'Numeric',
},
defaultEncoding: {
x: { field: 'x', type: 'quantitative' },
y: { field: 'y', type: 'quantitative' },
fill: { value: false, legend: false },
stroke: { value: '#222' },
strokeDasharray: { value: '' },
strokeWidth: { value: 1 },
},
});
export type LineEncoding = DeriveEncoding<LineEncodingConfig>;
export type LineEncoder = Encoder<LineEncodingConfig>;
export type LineChannelOutputs = DeriveChannelOutputs<LineEncodingConfig>;