@bokeh/bokehjs
Version:
Interactive, novel data visualization
131 lines • 4.46 kB
JavaScript
import * as p from "./properties";
import { LineJoin, LineCap, LineDash, FontStyle, HatchPatternType, TextAlign, TextBaseline } from "./enums";
import * as k from "./kinds";
import { keys } from "./util/object";
import { isString } from "./util/types";
export const Line = {
line_color: [k.Nullable(k.Color), "black"],
line_alpha: [k.Alpha, 1.0],
line_width: [k.Float, 1],
line_join: [LineJoin, "bevel"],
line_cap: [LineCap, "butt"],
line_dash: [k.Or(LineDash, k.Array(k.Float)), []],
line_dash_offset: [k.Float, 0],
};
export const Fill = {
fill_color: [k.Nullable(k.Color), "gray"],
fill_alpha: [k.Alpha, 1.0],
};
export const Image = {
global_alpha: [k.Alpha, 1.0],
};
export const Hatch = {
hatch_color: [k.Nullable(k.Color), "black"],
hatch_alpha: [k.Alpha, 1.0],
hatch_scale: [k.Float, 12.0],
hatch_pattern: [k.Nullable(k.Or(HatchPatternType, k.Str)), null],
hatch_weight: [k.Float, 1.0],
hatch_extra: [k.Dict(k.AnyRef()), {}], // XXX: recursive imports
};
export const Text = {
text_color: [k.Nullable(k.Color), "#444444"],
text_outline_color: [k.Nullable(k.Color), null],
text_alpha: [k.Alpha, 1.0],
text_font: [p.Font, "helvetica"],
text_font_size: [k.FontSize, "16px"],
text_font_style: [FontStyle, "normal"],
text_align: [TextAlign, "left"],
text_baseline: [TextBaseline, "bottom"],
text_line_height: [k.Float, 1.2],
};
export const LineScalar = {
line_color: [p.ColorScalar, "black"],
line_alpha: [p.NumberScalar, 1.0],
line_width: [p.NumberScalar, 1],
line_join: [p.LineJoinScalar, "bevel"],
line_cap: [p.LineCapScalar, "butt"],
line_dash: [p.LineDashScalar, []],
line_dash_offset: [p.NumberScalar, 0],
};
export const FillScalar = {
fill_color: [p.ColorScalar, "gray"],
fill_alpha: [p.NumberScalar, 1.0],
};
export const ImageScalar = {
global_alpha: [p.NumberScalar, 1.0],
};
export const HatchScalar = {
hatch_color: [p.ColorScalar, "black"],
hatch_alpha: [p.NumberScalar, 1.0],
hatch_scale: [p.NumberScalar, 12.0],
hatch_pattern: [p.NullStringScalar, null],
hatch_weight: [p.NumberScalar, 1.0],
hatch_extra: [p.DictScalar, {}],
};
export const TextScalar = {
text_color: [p.ColorScalar, "#444444"],
text_outline_color: [p.ColorScalar, null],
text_alpha: [p.NumberScalar, 1.0],
text_font: [p.FontScalar, "helvetica"],
text_font_size: [p.FontSizeScalar, "16px"],
text_font_style: [p.FontStyleScalar, "normal"],
text_align: [p.TextAlignScalar, "left"],
text_baseline: [p.TextBaselineScalar, "bottom"],
text_line_height: [p.NumberScalar, 1.2],
};
export const LineVector = {
line_color: [p.ColorSpec, "black"],
line_alpha: [p.NumberSpec, 1.0],
line_width: [p.NumberSpec, 1],
line_join: [p.LineJoinSpec, "bevel"],
line_cap: [p.LineCapSpec, "butt"],
line_dash: [p.LineDashSpec, []],
line_dash_offset: [p.NumberSpec, 0],
};
export const FillVector = {
fill_color: [p.ColorSpec, "gray"],
fill_alpha: [p.NumberSpec, 1.0],
};
export const ImageVector = {
global_alpha: [p.NumberSpec, 1.0],
};
export const HatchVector = {
hatch_color: [p.ColorSpec, "black"],
hatch_alpha: [p.NumberSpec, 1.0],
hatch_scale: [p.NumberSpec, 12.0],
hatch_pattern: [p.NullStringSpec, null],
hatch_weight: [p.NumberSpec, 1.0],
hatch_extra: [p.DictScalar, {}],
};
export const TextVector = {
text_color: [p.ColorSpec, "#444444"],
text_outline_color: [p.ColorSpec, null],
text_alpha: [p.NumberSpec, 1.0],
text_font: [p.FontSpec, "helvetica"],
text_font_size: [p.FontSizeSpec, "16px"],
text_font_style: [p.FontStyleSpec, "normal"],
text_align: [p.TextAlignSpec, "left"],
text_baseline: [p.TextBaselineSpec, "bottom"],
text_line_height: [p.NumberSpec, 1.2],
};
export function attrs_of(model, prefix, mixin, new_prefix = false) {
const attrs = {};
for (const attr of keys(mixin)) {
const prefixed_attr = `${prefix}${attr}`;
const value = model[prefixed_attr];
const new_attr = (() => {
if (isString(new_prefix)) {
return `${new_prefix}${attr}`;
}
else if (new_prefix) {
return prefixed_attr;
}
else {
return attr;
}
})();
attrs[new_attr] = value;
}
return attrs;
}
//# sourceMappingURL=property_mixins.js.map