UNPKG

@bokeh/bokehjs

Version:

Interactive, novel data visualization

48 lines 1.68 kB
import { LayoutDOM, LayoutDOMView } from "./layout_dom"; import { UIElement } from "../ui/ui_element"; import { ScrollbarPolicy } from "../../core/enums"; export class ScrollBoxView extends LayoutDOMView { static __name__ = "ScrollBoxView"; stylesheets() { return [...super.stylesheets()]; } connect_signals() { super.connect_signals(); const { child, horizontal_scrollbar, vertical_scrollbar } = this.model.properties; this.on_change(child, () => this.update_children()); this.on_change([horizontal_scrollbar, vertical_scrollbar], () => this.invalidate_layout()); } get child_models() { return [this.model.child]; } _update_layout() { super._update_layout(); function to_overflow(policy) { switch (policy) { case "auto": return "auto"; case "visible": return "scroll"; case "hidden": return "hidden"; } } const { horizontal_scrollbar, vertical_scrollbar } = this.model; this.style.append(":host", { overflow_x: to_overflow(horizontal_scrollbar), overflow_y: to_overflow(vertical_scrollbar), }); } } export class ScrollBox extends LayoutDOM { static __name__ = "ScrollBox"; constructor(attrs) { super(attrs); } static { this.prototype.default_view = ScrollBoxView; this.define(({ Ref }) => ({ child: [Ref(UIElement)], horizontal_scrollbar: [ScrollbarPolicy, "auto"], vertical_scrollbar: [ScrollbarPolicy, "auto"], })); } } //# sourceMappingURL=scroll_box.js.map