UNPKG

@bokeh/bokehjs

Version:

Interactive, novel data visualization

56 lines 1.77 kB
import { DataRenderer, DataRendererView } from "./data_renderer"; import { GlyphRenderer } from "./glyph_renderer"; import { build_view } from "../../core/build_views"; export class ContourRendererView extends DataRendererView { static __name__ = "ContourRendererView"; fill_view; line_view; children_views() { return [...super.children_views(), this.fill_view, this.line_view]; } get glyph_view() { if (this.fill_view.glyph.data_size > 0) { return this.fill_view.glyph; } else { return this.line_view.glyph; } } async lazy_initialize() { await super.lazy_initialize(); const { parent } = this; const { fill_renderer, line_renderer } = this.model; this.fill_view = await build_view(fill_renderer, { parent }); this.line_view = await build_view(line_renderer, { parent }); } remove() { this.fill_view.remove(); this.line_view.remove(); super.remove(); } _paint(ctx) { this.fill_view.paint(ctx); this.line_view.paint(ctx); } hit_test(geometry) { return this.fill_view.hit_test(geometry); } } export class ContourRenderer extends DataRenderer { static __name__ = "ContourRenderer"; constructor(attrs) { super(attrs); } static { this.prototype.default_view = ContourRendererView; this.define(({ List, Float, Ref }) => ({ fill_renderer: [Ref(GlyphRenderer)], line_renderer: [Ref(GlyphRenderer)], levels: [List(Float), []], })); } get_selection_manager() { return this.fill_renderer.data_source.selection_manager; } } //# sourceMappingURL=contour_renderer.js.map